0

我想在 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.
4

2 回答 2

0

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

于 2011-11-26T00:18:33.220 回答
0

将此代码添加到您的 main.scons 中,如下所示:

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

谢谢。凯恩。

于 2012-04-06T02:53:52.970 回答