Linux:控制`ld`搜索.o目标文件的位置?

Linux:控制`ld`搜索.o目标文件的位置?,第1张

概述好吧,情况就是这样:我正在尝试使用一些较旧的软件:在Ubuntu Lucid上工作正常,在Natty上失败.所以,我徘徊了一下,事实证明这个软件调用ld,并且ld最终失败了:.../ld: crt1.o: No such file: No such file or directory ...是的,旧的crti.o file missing错误:)但是,我想用

好吧,情况就是这样:我正在尝试使用一些较旧的软件:在Ubuntu LucID上工作正常,在Natty上失败.

所以,我徘徊了一下,事实证明这个软件调用ld,并且ld最终失败了:

.../ld: crt1.o: No such file: No such file or directory

…是的,旧的crti.o file missing错误:)但是,我想用更一般的术语提问…

问题是,这是’独立'(较旧)ld在这里,当我跑… / ld -verbose |少,我得到:

...SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");...

现在,问题在于:

>在LucID上,crt1.o位于/usr/lib/crt1.o中
>在Natty上,crt1.o位于/usr/lib/i386-linux-gnu/crt1.o

…所以毫不奇怪为什么crt1.o无法找到,我想.看来,我所要做的就是告诉ld在/usr/lib / i386-linux-gnu中寻找crt1.o,但我该怎么做?

我以为我可以使用-L选项,但是男人ld说:

to link a file "hello.o":    ld -o 

…意思是,’-L’会影响我们寻找“libc.a”的位置(在人的例子中) – 但不会影响目标文件.

我实际上更喜欢这个环境变量,但是我尝试了LD_PRELOAD_PATH和LD_liBRARY_PATH都没有用(我猜,那些与“共享对象”有关,而这些.o文件不是其中之一).

有没有人知道是否有一个环境变量(最好是 – 或者如果没有,ld的命令行选项)可以控制ld搜索.o目标文件的位置?

作为一个注释,我想我可以在/usr/lib /中使用symlink /usr/lib/i386-linux-gnu/crt1.o,但我宁愿使用环境变量,如果它存在…如果没有,有没有其他可能的解决方案?

提前感谢您的任何答案,
干杯!

编辑:可能相关:Daniel Kegel – –with-sysroot newbie troubles: “ld: cannot open crt1.o”最佳答案ld根本不使用.o文件的搜索路径 – 您必须将其传递给完整路径(如您在手册中引用的示例).所以不,没有办法改变它用来查找.o文件的搜索路径.

通常,不应该直接调用ld – 例如,您通常会调用gcc来进行链接.我会说这是调用ld的程序,这是错误的.

总结

以上是内存溢出为你收集整理的Linux:控制`ld`搜索.o目标文件的位置?全部内容,希望文章能够帮你解决Linux:控制`ld`搜索.o目标文件的位置?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1046966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)