Как я могу использовать CMake для получения зависимостей для приложения Windows при сборке из Linux?

В настоящее время я пытаюсь развернуть приложение Qt для Windows, используя MinGW и CMake из Linux. Я использовал MXE для подготовки среды сборки (установите mingw32 и скомпилируйте совместно используемые библиотеки Qt5). Я написал CMakeList.txt и скрипт toolchain, и они создали мое приложение.

Единственное, чего я не могу достичь — это предоставить общие библиотеки Qt моему встроенному исполняемому файлу.

Вот мой файл Toolchain:
http://pastebin.com/gh7kSda4

Это мой CMakeLists.txt:
http://pastebin.com/wHA7f7Sj

Вот выдержка из этого скрипта, содержащая часть установки:

# Installation.
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/${TOOLCHAIN}-Bundle)
install(TARGETS mEyeSaver
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
install(CODE "include(BundleUtilities)
fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/mEyeSaver${TOOLCHAIN_EXECUTABLE_FORMAT}\" \"\" \"${QT5_PATH}/bin\")
" COMPONENT Runtime)

Как видите, я использую fixup_bundle для достижения своей цели.

После того, как я наберу make install Я получаю следующий вывод:
http://pastebin.com/DymaH1Mu

После этого в mEyeSaver.exe ничего нет x86_64-w64-mingw32-Bundle папка. Нет DLL были скопированы.
Я уверен, что в ~/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin папка. Но есть еще кое-что, что я делаю неправильно.

Как решить проблему?
Спасибо

Я переосмыслил то, что делаю, и пришел к выводу, что, возможно, fixup_bundle просто не может анализировать зависимости для исполняемого файла Windows, потому что Linux ldd (который он использует) не имеет ничего общего с приложением Windows. Итак, я отредактировал свой вопрос.

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

4

Решение

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

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

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

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