qemu-system-rv64ilp32 Windows 验证可用

在msys2 64里面搭建编译环境和编译(管理员权限打开)

pacman -Syu 
pacman -S base-devel git mingw-w64-x86_64-toolchain \              mingw-w64-x86_64-pkg-config mingw-w64-x86_64-glib2 \              mingw-w64-x86_64-pixman mingw-w64-x86_64-SDL2 \ diffutils  
git clone https://github.com/ruyisdk/qemu.git
cd qemu
git checkout --track remotes/origin/rv64ilp32-dev 
mkdir build 
cd build 
../configure --target-list=riscv64ilp32-softmmu --prefix=$PWD/../install-win 
make install -j6

演示成果,来自苦芽。。。

想知道为什么必须用管理员身份打开msys2吗?

请在评论区输入 上海苦芽科技的英文名称 :rofl:

7 个赞

咦……这不是直接装qemu for windows就行的么?我最近才刚装上,还没有空实验

2 个赞

直接装qemu for windows 的话,支持 qemu-system-riscv64ilp32 ?

期待给出验证结果

2 个赞

话说 mingw64 里面可以编译 qemu的 rust 部分嘛

2 个赞

Shanghai Kubuds Technology Co., Ltd

2 个赞

大佬,,,您的问题过于专业啦 :rofl:

1 个赞

搞个能直接运行的就好啦

编译qemu涉及创建符号链接(软链接),管理员打开msys才能创建软链接,AI是这样解释的:

在 Windows 里,“创建符号链接(symbolic link)” 这一权限默认只给 Administrators 组的成员,并且默认只在 “以管理员身份运行” 的进程里才生效。
MSYS(含 Git-Bash、Cygwin、MSYS2 等)只是普通用户态程序,它最终要通过 Win32 API CreateSymbolicLinkW 来完成软链接。如果当前令牌里没有 SeCreateSymbolicLinkPrivilege 这个特权,API 会返回 ERROR_PRIVILEGE_NOT_HELD(1314),于是 ln 就报 “Operation not permitted”。因此你必须 “管理员打开 MSYS” 才能让它的进程拿到该特权,否则内核直接拒绝。