Macos mac上的scons动态链接

Macos mac上的scons动态链接,macos,dynamic,scons,dylib,Macos,Dynamic,Scons,Dylib,我想将项目中的一些动态库与SCON链接起来 例如: source/main.cpp tool/lib/libboost_system.dylib 二进制位置 源/程序二进制 我的问题是,在链接过程之后,二进制文件找不到libboost_system.dylib dyld:未加载库:libboost_system.dylib otool-L显示了问题所在。我可以用一个小脚本来修正路径。但我想用烤饼做这个 在linux上,我只需在SCON中设置RPATH就可以了 -----在@Brady的提示之后

我想将项目中的一些动态库与SCON链接起来

例如:

source/main.cpp

tool/lib/libboost_system.dylib

二进制位置

源/程序二进制

我的问题是,在链接过程之后,二进制文件找不到libboost_system.dylib

dyld:未加载库:libboost_system.dylib

otool-L
显示了问题所在。我可以用一个小脚本来修正路径。但我想用烤饼做这个

在linux上,我只需在SCON中设置
RPATH
就可以了

-----在@Brady的提示之后

我为我的库添加链接标志。链接后,我得到了错误

'g++:错误:-仅允许使用-dynamiclib安装\u名称'

所以我添加到命令中

LINKFLAGS='-dynamiclib install_name@executable_path/libwhater.dylib'

现在我得到了如果我调用我的执行消息

'无法执行二进制文件'

耳醇-L

让我看看:

@可执行文件路径/tools/lib/libboost\u filesystem.dylib(兼容版本0.0.0,当前版本0.0.0) libboost_system.dylib(兼容版本0.0.0,当前版本0.0.0)

来自SCON的链接命令如下所示:

/opt/local/bin/g++-o source/prog-dynamiclib-install_name@executable_path/tools/lib/libboost_system.dylib source/main.o-Ltools/lib-lboost_system


根据以上提供的意见:

需要将以下内容传递给链接器:

-install_name @executable_path/libWhatever.dylib
这可以在SCON中完成,如下所示:

env = Environment()
env.Append(LINKFLAGS = ['-install_name @executable_path/libWhatever.dylib'])

如果需要编译动态(共享)库,可以使用。

获得命令行选项
-install\u name@executable\u path/libwhater.dylib
ld
。使用
make
这需要设置
LDFLAGS
,但是我不知道如何使用
scons
。感谢您的帮助。使用您的建议后,问题有了一点变化。我编辑了这篇文章above@chak,我在答案中添加了有关使用共享库编译的信息。希望这会有所帮助。我对mac上的编译了解不够,无法提供更多帮助。如果这不起作用,你应该考虑另一个关于Mac编译的问题。