自定义编译pcc后链接失败,如何解决?
解决PCC编译链接失败的问题
1. 确认PCC安装路径
自定义编译的PCC默认会安装到/usr/local目录下,先执行以下命令确认安装位置:
which pcc
正常输出应为/usr/local/bin/pcc,对应的库文件存放在/usr/local/lib/pcc,启动文件(如crtbegin.o)在/usr/local/lib。
2. 临时修复:编译时手动指定路径
执行编译链接时,直接给PCC传入路径参数,让链接器找到缺失的文件:
pcc -B/usr/local/lib -L/usr/local/lib/pcc hw.c
-B指定启动文件的搜索路径-L指定pcc库文件的搜索路径
运行生成的可执行文件验证:
./a.out
若输出hello world,说明临时修复有效。
3. 永久修复:配置系统链接器默认路径
创建链接器配置文件,把PCC的库路径加入系统默认搜索列表:
echo "/usr/local/lib/pcc" | sudo tee /etc/ld.so.conf.d/pcc.conf sudo ldconfig
之后再执行pcc hw.c就无需手动加参数了。
4. 彻底解决:重新编译PCC并指定配置参数
如果临时修复有效,建议重新编译PCC,确保configure正确识别系统路径:
cd 你的pcc源码目录 make clean ./configure --prefix=/usr/local --libdir=/usr/local/lib make -j$(nproc) sudo make install
--libdir参数明确指定库文件安装位置,避免configure自动检测出错。
内容的提问来源于stack exchange,提问作者Petr Skocik
相关产品推荐
相关产品推荐

