【发布时间】:2019-07-10 22:06:03
【问题描述】:
我在 macOS 中尝试了一个简单的 dylib 并用 g++ 编译。我做了一个小样本来测试这个库,它工作得很好。 现在我制作了一个简单的 QT 应用程序,链接了 lib 并将标头添加到 mainwindow.cpp,但我总是收到一条失败消息原因:找不到图像
我在这里阅读了网络和其他一些案例,但都是基于路径。我认为这不是路径问题。因为我在所有情况下都进行了所有更改,并将 lib 复制到所有需要的文件夹中,例如项目文件夹、构建文件夹。没有任何帮助。
我认为 QT 无法与该库一起使用,并且我错过了一些需要的代码,例如用于初始化或导出的代码。所以问题更多在 dylib 内部,而不是在 QT 或 Paths 值中。
也许有人可以帮助我吗?
我试过了:
INCLUDEPATH += $$PWD/mylib
DEPENDPATH += $$PWD/mylib
macx: LIBS += -L$$PWD/mylib/ -lmylib
我尝试将 lib 复制到构建文件夹以及可执行文件夹。
还编辑:
/Users/ingoforster/Documents/Development/Playground/TestGround/mylib:/Users/ingoforster/Qt/5.9.1/clang_64/lib
in Project settings DYLD_LIBRARY_PATH
Set also to DYLD_FRAMEWORK_PATH
Cpp
#include "mylib.hpp"
char *mMessage(void) {
return "Ein sonniger Tag";
}
标题
#include <stdio.h>
#include <iostream>
using namespace std;
char *mMessage(void);
编译 g++ -std=c++0x --verbose -dynamiclib -o libmylib.dylib mylib.cpp
样本
#include "mylib.hpp"
int main(void){
char* Ingo = mMessage();
std::cout << mMessage();
}
编译 g++ -std=c++0x test.cpp -L./ -lmylib
实际结果是样本运行良好。 但在 QT 中我得到了:
dyld:库未加载:libmylib.dylib 引用自:/Users/ingoforster/Documents/Development/Playground/build-TestGround-Desktop_Qt_5_9_1_clang_64bit-Debug/TestGround.app/Contents/MacOS/TestGround 原因:找不到图片 10:09:05:程序意外结束。 10:09:05:进程被强行结束。
【问题讨论】: