以下是描述我的问题的示例:
ld -Lpath1 -Lpath2 -lA -lB -Xlinker -T -Xlinker \
-W1,-rpath,/usr/local/lib -l-o target
ld: cannot find -lA
collect2: ld returned 2 exit status
path1和path2都是相对路径,根据ld的pwd可以找到库A,那为什么ld输出这个错误信息呢?
谁能给我一些建议来调试这个问题?
我想念一些,在一个名为 rt 的库之前有一个“-static”。
根据您的建议,我尝试让 gcc 驱动 ld 进行链接过程。gcc 傲博 -mabi=64 -static -lrt -Xlinker -T -Xlinker ld.script -W1,-rpath,/usr/local/lib -lmemdbg -o target 不行。
然后我删除了“-static”选项,以及-lpthread之后的另一个动态库(因为rt依赖于我删除“-static”时发现的pthread)
gcc 傲博 -mabi=64 -lrt -lpthread -Xlinker -T -Xlinker ld.script -W1,-rpath,/usr/local/lib -lmemdbg -o target 并且这次对象链接成功了。
然后我试图通过将“-v”传递给 gcc 来弄清楚为什么“-static”命令不起作用。出现了一些“-L”选项,并在搜索列表中找到了一个名为 librt.a 的库。
我真的很困惑。gcc的版本是4.3