如何在Xcode中链接动态库?

Sam*_*Sam 9 c++ macos xcode dylib

我目前正在Qt中开发一个程序,它使用库libqextserialport.1.dylib.

我构建它并在x-code中运行并且它向后吐:

dyld: Library not loaded: libqextserialport.1.dylib
    Referenced from: /Users/samuelreh/Desktop/QtOpenCV/build/Debug/QtOpenCV.app/Contents/MacOS/QtOpenCV
    Reason: image not found
Run Code Online (Sandbox Code Playgroud)

该库位于/ Users/samuelreh/Desktop/QtOpenCV/qextserialport/build /中.

我可以通过更改为可执行文件夹/Users/samuelreh/Desktop/QtOpenCV/build/Debug/QtOpenCV.app/Contents/MacOS/来运行我的程序并输入:

install_name_tool -change libqextserialport.1.dylib /Users/samuelreh/Desktop/QtOpenCV/qextserialport/build/libqextserialport.1.dylib QtOpenCV

我知道除此之外可能有很多解决方案.有人知道x-code中最好/最优雅/最容易做的事情吗?

ben*_*ado 2

如果我正确理解您的问题,您的应用程序构建良好,链接时没有错误,但是当您尝试启动它时,找不到库。

这并不奇怪,因为 dylib 文件位于某个任意目录中,而不是在系统路径上。您需要将其复制到/usr/lib(可能不是一个好主意)或将其包含在应用程序包中。后者可能是更好的方法。

我从未尝试过,但显然您需要使用复制文件构建阶段将 dylib 放入您的包中,然后配置 Xcode,以便您的可执行文件知道在哪里找到它。