poppler-qt5, MacOS ld: символы не найдены для архитектуры x86_64

Я не так давно перешел на Qt, и у меня возникли проблемы с линковкой библиотек.

Я собрал версию poppler-0.63, используя предоставленное руководство по установке.

tar zippedPoppler   
cd poppler    
mkdir build    
cd build     
cmake .. -DCMAKE_INSTALL_PREFIX=pathToQt5.9.2 -DCMAKE_CXX_COMPILER=clang++     
make CXX=pathToclang++Compiler
sudo make install
make clear

И ошибки не было.

Я создал новый проект Qt, добавил

INCLUDEPATH += /Users/p.witkowski/Qt/5.9.2/clang_64/include/poppler/qt5
LIBS += -L/Users/p.witkowski/Qt/5.9.2/clang_64/lib -lpoppler -v

В файле .cpp в том числе все в порядке, без ошибок, но когда я пытаюсь использовать что-либо из poppler, у меня возникают ошибки связывания.

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <poppler-qt5.h>
int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    Poppler::Document *doc = Poppler::Document::load("/Users/p.witkowski/Desktop/abc.pdf");
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}

Далее ошибка:

12:47:20: Running steps for project untitled1...
12:47:20: Configuration unchanged, skipping qmake step.
12:47:20: Starting: "/usr/bin/make" 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -g -std=gnu++11  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.10 -Wall -W -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../untitled1 -I. -I../../Qt/5.9.2/clang_64/include/poppler/qt5 -I../../Qt/5.9.2/clang_64/lib/QtQuick.framework/Headers -I../../Qt/5.9.2/clang_64/lib/QtGui.framework/Headers -I../../Qt/5.9.2/clang_64/lib/QtQml.framework/Headers -I../../Qt/5.9.2/clang_64/lib/QtNetwork.framework/Headers -I../../Qt/5.9.2/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/AGL.framework/Headers -I../../Qt/5.9.2/clang_64/mkspecs/macx-clang -F/Users/p.witkowski/Qt/5.9.2/clang_64/lib -o main.o ../untitled1/main.cpp
../untitled1/main.cpp:9:24: warning: unused variable 'doc' [-Wunused-variable]
    Poppler::Document *doc = Poppler::Document::load("/Users/p.witkowski/Desktop/abc.pdf");
                       ^
1 warning generated.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.10 -Wl,-rpath,@executable_path/Frameworks -Wl,-rpath,/Users/p.witkowski/Qt/5.9.2/clang_64/lib -o untitled1.app/Contents/MacOS/untitled1 main.o qrc_qml.o   -F/Users/p.witkowski/Qt/5.9.2/clang_64/lib -L/Users/p.witkowski/Qt/5.9.2/clang_64/lib -lpoppler -v -framework QtQuick -framework QtQml -framework QtNetwork -framework QtCore -framework DiskArbitration -framework IOKit -framework QtGui -framework OpenGL -framework AGL 
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin17.3.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -headerpad_max_install_names -macosx_version_min 10.10.0 -o untitled1.app/Contents/MacOS/untitled1 -L/Users/p.witkowski/Qt/5.9.2/clang_64/lib -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -rpath @executable_path/Frameworks -rpath /Users/p.witkowski/Qt/5.9.2/clang_64/lib main.o qrc_qml.o -lpoppler -framework QtQuick -framework QtQml -framework QtNetwork -framework QtCore -framework DiskArbitration -framework IOKit -framework QtGui -framework OpenGL -framework AGL -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/lib/darwin/libclang_rt.osx.a -F/Users/p.witkowski/Qt/5.9.2/clang_64/lib
Undefined symbols for architecture x86_64:
  "Poppler::Document::load(QString const&, QByteArray const&, QByteArray const&)", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [untitled1.app/Contents/MacOS/untitled1] Error 1
12:47:23: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: TESTDesktop Qt 5.9.2 clang 64bit)
When executing step "Make"
12:47:23: Elapsed time: 00:02.

person pawel-witkowski    schedule 19.04.2018    source источник
comment
Вы проверили, что встроенная библиотека poppler действительно находится ниже Users/p.witkowski/Qt/5.9.2/clang_64/lib ?   -  person sandwood    schedule 19.04.2018
comment
да - точно /Users/p.witkowski/Qt/5.9.2/clang_64/lib/libpoppler.dylib   -  person pawel-witkowski    schedule 19.04.2018
comment
В порядке. Строка компоновщика выглядит нормально (у нее тот же путь). Может быть, метод Poppler::Document::load не экспортируется в динамическую библиотеку? Вы можете проверить (см. этот вопрос, если вы не знаете, как (stackoverflow.com/questions/4506121/ Вы также можете просто для тестирования изменить строку только на Poppler::Document *док; посмотреть.   -  person sandwood    schedule 19.04.2018