如何阻止将动态链接添加到我的应用程序中?

时间:2014-07-31 05:57:56

标签: macos boost static-linking dynamic-linking

我有一个dylib项目静态链接到两个boost工件(filesystem.a和system.a)但是当我运行otool -L mylib.dylib时输出表明它取决于这两个的.dylib版本。如果我在构建之后将boost dylibs移出路径,则应用程序无法运行。但是,如果我将它们移出路径并然后构建,那么依赖关系就会消失,应用程序运行得很好。我需要添加哪些设置才能阻止这些动态依赖项插入到我的项目中?

我尝试添加-static标志,但是我遇到了更多的链接器错误,在我修复它们之后依赖仍然存在。此类预处理器宏(如BOOST_USE_NO_LIB)也没有效果。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,但我不确定它是否是最好的。链接器Xcode似乎更喜欢动态库,如果找到它们,并且似乎没有一种简单的方法可以添加一个选项来覆盖它。但是,如果我擦除构建阶段选项卡中的链接并在其他链接器标志中手动添加静态库的完整路径,那么它将按预期工作。但是,如果还有其他方式我想听听它。