在Mac OS X 10.7.2上构建libjingle时出现链接错误

时间:2011-11-07 16:22:44

标签: macos linker-errors rpath libjingle

我想在Mac OS X 10.7.2上构建libjingle。我刚刚克服了编译器错误并遇到了链接器错误。路径/Developer/libjingle/libjingle-0.6.3/talk/build/dbg/lib存在但系统未知。我该如何修复它并让libjingle真正起作用?

MBP17:talk rei25$ /Developer/swtoolkit/hammer.sh
scons: Reading SConscript files ...

scons: warning: The build_dir keyword has been deprecated; use the variant_dir keyword instead.
File "/Developer/swtoolkit/site_scons/site_init.py", line 203, in BuildEnvironmentSConscripts
scons: done reading SConscript files.
scons: Building targets ...
scons: `all_libraries' is up to date.
________Linking build/dbg/obj/login
ld: unknown option: -rpath=/Developer/libjingle/libjingle-0.6.3/talk/build/dbg/lib
collect2: ld returned 1 exit status
scons: *** [build/dbg/obj/login] Error 1
scons: building terminated because of errors.

2 个答案:

答案 0 :(得分:0)

我发布到您的其他question的补丁也解决了这个问题。在libjingle的SCons构建文件中,它们删除了linux构建的默认RPATH。我根本不知道SCons,所以我不确定它是如何开始的。我注意到linux build删除了默认值,因此我将其删除以用于OS X构建,这似乎有效。虽然OS X的ld假设采用rpath参数,但我相信rpath与实际路径之间没有相同的符号。这就是为什么它可能会失败,但是你根本不需要设置它。但是,我还没有运行单元测试,知道删除rpath参数是否会导致运行时问题。至少它现在编译。

答案 1 :(得分:0)

在main.scons中添加此代码,如下所示:

# Remove default rpath set by Hammer. Hammer sets it to LIB_DIR, which is wrong.   
mac_env.Replace(
  RPATH = [],
)   

感谢。 凯恩。