哪个链接器设置确定共享库的加载路径?

时间:2010-10-24 11:07:53

标签: c++ macos linker shared-libraries poco

我在Mac上构建了Poco C ++库。检查构建的输出文件时,我注意到它们的加载路径是指向构建目录的绝对路径。例如:

$ otool -L libPocoFoundation.dylib
libPocoFoundation.dylib:
    /Users/francis/orig/poco-1.3.6p2/lib/Darwin/i386/libPocoFoundation.9.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 625.0.0)

哪个编译器或链接器选项确定了这个?我怎么能覆盖这个呢? (在编译时。我知道我可以使用install_name_tool更改它。)

修改
编译器是g++-4.0(gcc版本4.0.1 Apple)。
链接器为libtool(Apple Computer,Inc。版本cctools-782)

我正在仔细阅读makefile。也许我会弄清楚自己。但欢迎大家帮忙!

1 个答案:

答案 0 :(得分:1)

stackoverflow.com上的相关问题"How to set the runtime path (-rpath) of an executable with gcc under Mac OSX?"解释了在编译时这样做的一些方法。

顺便说一句:我已经在MacOS Leopard上复制了你的POCO错误并为POCO-1.​​4.0打开了bug 3164792