Я попробовал простой dylib в macOS и скомпилировал с g ++.Я сделал небольшой пример для тестирования библиотеки, она отлично работает.Теперь я сделал простое приложение QT, связал библиотеку и добавил заголовок к mainwindow.cpp, и у меня всегда получалось сообщение об ошибке Причина: изображение не найдено
Я читаю в Интернете, а также некоторые другие случаи здесь, но всеосновывается на пути. Я думаю, что это не проблема пути.Поскольку я внес все изменения, я прочитал во всех случаях, а также скопировал библиотеку во все необходимые папки, такие как папка проекта, папка сборки.Ничего не помогает.
Я думаю, что QT не может работать с библиотекой, и я пропустил некоторый необходимый код, например, для инициализации или экспорта.Так что проблема скорее в dylib, а не в значениях QT или Paths.
Может быть, кто-то может помочь мне здесь?
Я пытался:
INCLUDEPATH += $$PWD/mylib
DEPENDPATH += $$PWD/mylib
macx: LIBS += -L$$PWD/mylib/ -lmylib
Я попытался скопировать lib в папку build, а также в исполняемую папку.
Также отредактировано:
/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";
}
header
#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 Ссылка на:/ TestGround Причина: изображение не найдено 10:09:05: Программа неожиданно завершила работу.10:09:05: Процесс был принудительно завершен.