WSL2 Ubuntu20.04下CMake设置-m32后编译提示cout等标识符未声明
问题原因
该报错是因为Ubuntu系统默认仅安装64位C/C++开发依赖,添加-m32参数指定32位编译后,gcc无法找到i386架构对应的标准库头文件与链接库,进而找不到cout、uint32_t等基础标识符。
解决步骤
- 首先开启系统的i386架构支持:
sudo dpkg --add-architecture i386 - 更新软件源列表:
sudo apt update - 安装32位版本的gcc、g++编译套件及标准库开发包:
sudo apt install gcc-multilib g++-multilib libc6-dev:i386 libstdc++-9-dev:i386 - 清空之前生成的CMake缓存后重新编译即可:
rm -rf build mkdir build && cd build cmake .. make
补充说明
如果后续编译过程中出现其他第三方库找不到的报错,安装对应依赖的32位版本(包名加:i386后缀)即可。
内容的提问来源于stack exchange,提问作者isudfv
相关产品推荐
相关产品推荐

