在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吗?
请在评论区输入 上海苦芽科技的英文名称 
7 个赞
mzh
2
咦……这不是直接装qemu for windows就行的么?我最近才刚装上,还没有空实验
2 个赞
直接装qemu for windows 的话,支持 qemu-system-riscv64ilp32 ?
期待给出验证结果
2 个赞
话说 mingw64 里面可以编译 qemu的 rust 部分嘛
2 个赞
MAGA
5
Shanghai Kubuds Technology Co., Ltd
2 个赞
sunmin
8
编译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” 才能让它的进程拿到该特权,否则内核直接拒绝。