在没有管理员权限的情况下在mac上运行带有依赖库的Qt app

时间:2014-10-24 16:59:11

标签: c++ macos linker shared-libraries

我正在尝试构建并运行(并修复)在Qt 4.8中为Windows编写的应用程序,然后在Linux上构建。现在尝试在Mac上运行它。

该应用程序需要某些lib依赖项 - 其中一些是我可以控制的单独构建的,还有一些购买的sdks。

我可以很好地构建应用程序,在pro文件中设置所有相关dylib的位置。

不幸的是我无法执行应用程序,因为链接器不知道我的依赖项所在的位置...我猜它忽略了我的专业文件。

我试图将依赖的dylib放在与app相同的目录中(我是以捆绑或不捆绑的方式构建的)但是我仍然收到有关缺少依赖项的错误。

我已经读过,我可以把我的lib放在链接器会自动找到它们的地方,比如/ usr / local / lib。很遗憾,我没有管理员权限。还有其他地方放置它们吗?

我现在正在尝试:使用install_name_tool打包它...它非常繁琐,我不知道它是否会起作用......但这意味着我必须每个都运行包装步骤我重建应用程序的时间 - 很可能很多次!

如何将依赖项放在链接器将找到的位置,而无法访问sudo? (或者无法查看系统文件夹......虽然我似乎能够从终端播放....非常奇怪,我可以...但没有对系统文件夹的写权限)

或者我可以在mac上使用什么工具,没有管理员权限,让链接器识别出库的路径?

1 个答案:

答案 0 :(得分:0)

我正在听这个答案

http://qt-project.org/forums/viewthread/5469

macx {
 LIBS += ../mylib/mylib-build-desktop/mylib.dylib

 PRE_TARGETDEPS = ../mylib/mylib-build-desktop/mylib.dylib

 mylib.path = Contents/MacOS
 mylib.files = ../mylib/mylib-build-desktop/mylib.1.dylib
 QMAKE_BUNDLE_DATA += mylib
}