Поиск библиотечных зависимостей (make / cmake / linker)

Я пытаюсь создать кроссплатформенное приложение QT C ++ (Linux / Windows), используя MXE и сделать. Я гуглил очень, очень сильно, вы не знаете, насколько блестящими были мои запросы в Google. Такие запросы. Но:

Проблема: неопределенные ссылки.

/home/user/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:(.text+0x2b7): undefined reference to `pcre16_exec'

(и многие другие в этом роде)

Решение:

cd ~/mxe && make pcre

затем добавьте в CMakeFiles.txt:

ADD_LIBRARY(pcre STATIC IMPORTED)
SET_TARGET_PROPERTIES(pcre PROPERTIES IMPORTED_LOCATION /home/user/mxe/usr/i686-w64-mingw32.static/lib/libpcre16.a)
TARGET_LINK_LIBRARIES(${CMAKE_PROJECT_NAME} pcre)

Последняя проблема: другие неопределенные ссылки.

/home/user/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qbytearray.o):qbytearray.cpp:(.text+0x60a): undefined reference to `uncompress'
/home/user/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Core.a(qbytearray.o):qbytearray.cpp:(.text+0x1a30): undefined reference to `compress2'
/home/user/mxe/usr/i686-w64-mingw32.static/qt5/lib/libQt5Gui.a(qharfbuzzng.o):qharfbuzzng.cpp:(.text+0x143e): undefined reference to `hb_font_funcs_set_glyph_v_origin_func'

Но я не знаю, из какой библиотеки это compress или же hb_font_funcs_set_glyph_v_origin_func приходит. Я мог бы погуглить их один за другим, но это похоже на практику каменного века. И в долгосрочной перспективе я не хочу делать это для каждого кросс-скомпилированного проекта.

Вопросы):

Как найти имена нужных библиотек, не читая файлы сборки qt? Есть ли способ вывести зависимости (нужны динамические библиотеки) с помощью cmake или make?

Возможные решения:

  • Я знаю, что могу использовать LDD в двоичном файле. Что мне нужно, это что-то вроде ldd-time-link. Это возможно?

  • Может быть, я мог бы использовать make (на этапе сборки QT) для печати зависимостей QT. Если да, то как это сделать?

UPD: обнаружен

  • mxe связано почти решение:

    usr/bin/i686-w64-mingw32.static-pkg-config --list-all | sort

    usr/bin/i686-w64-mingw32.static-pkg-config Qt5Widgets --libs

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]