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

我构建它并以X代码运行,它又吐回来:

dyld: Library not loaded: libqextserialport.1.dylib
    Referenced from: /Users/samuelreh/Desktop/QtOpenCV/build/Debug/QtOpenCV.app/Contents/MacOS/QtOpenCV
    Reason: image not found

该库位于/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代码中知道最好/最优雅/最容易做的事情吗?

最佳答案

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

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

我从未尝试过,但是显然您需要使用Copy Files Build Phase将dylib放入包中,然后使用configure Xcode,以便您的可执行文件知道在哪里可以找到它。

09-25 22:13