问题是,可能只有当前架构的gcc,而且是64位的。所以需要32位的支持文件。
对于 cannot find crt1.o
查找crti.o文件
sudo find /usr/ -name crti.o
打开~/.bashrc文件
gedit ~/.bashrc
添加下面的内容,保存
LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
export LIBRARY_PATH
更新环境变量
source ~/.bashrc
对于 cannot find lgcc_s
查找lgcc_s文件
sudo find /usr/ -name libgcc_s.so
查看连接lgcc_s文件的时候的查找目录,会发现找不到-lgcc_s
ld -lgcc_s --verbose

将找到的libgcc_s.so和libgcc_s.so.1软连接到相应的目录/usr/lib/x86_64-linux-gnu/
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s.so /usr/lib/x86_64-linux-gnu/
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s.so.1 /usr/lib/x86_64-linux-gnu/
再次查看,已经找到了

本文详细介绍了如何在64位Linux系统中解决32位编译遇到的crt1.o和lgcc_s缺失问题,通过查找并链接所需的32位支持文件,确保编译过程顺利进行。
1649

被折叠的 条评论
为什么被折叠?



