終於在WSL2下用上了32位元的gcc

2020-10-15 15:00:17

第一步,去微軟官網看doc如何啟用WSL2
第二步,安裝Ubuntu18,如果上一步成功了,你現在安裝的Ubuntu18應該就是WSL2而不是WSL1,用powershell的wsl -l -v去檢查,如果還是WSL1,就用wsl --set-version Ubuntu-18.04 2
第三步,用我的bash文字

#需要安裝qemu-user-static軟體包,新增i386 binfmt,啟用i386體系結構
    sudo apt install qemu-user-static
    sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'
 
#啟用i386架構和軟體包
    sudo dpkg --add-architecture i386
    sudo apt install cpp-7:i386
    sudo apt install cpp:i386
    sudo apt install gcc:i386
 
#每次重新啟動WSL並需要i386支援時,都需要重新啟用此功能:
    sudo service binfmt-support start

#使用apt看自己的gcc:i386是否已安裝
    sudo apt show gcc:i386

#使用gcc -m32 hello.c來編譯32位元的東西
 
#禁用i386支援
#    sudo service binfmt-support stop


第四步,用gcc的-m32選項進行編譯,你就能看到自己的sizeof(long)是4了