Я хочу создать автономный пакет с зависимостями исполняемого + общей библиотеки и развернуть его в минимальном контейнере Docker.
Из моих исследований видно, что BundleUtitilies можно использовать, чтобы позволить cmake создавать себяприложения.Однако я не могу заставить его работать, и мне не хватает хороших минимальных примеров.
install (TARGETS testPublisher_ecal RUNTIME DESTINATION bin OPTIONAL)
if(BUNDLE)
install (CODE "
include(BundleUtilities)
fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/bin/testPublisher_ecal\" \"\" \"\")
" OPTIONAL)
else()
endif()
Насколько я понимаю, fixup_bundle в основном нуждается в пути к исполняемому файлу.Однако приведенный выше фрагмент дает только
Install the project...
-- Install configuration: "Release"
-- Installing: /app/install/bin/testPublisher_ecal
-- Set runtime path of "/app/install/bin/testPublisher_ecal" to ""
-- fixup_bundle
-- app='/app/install/bin/testPublisher_ecal'
-- libs=''
-- dirs=''
-- ignoreItems=''
-- warning: No 'file' command, skipping execute_process...
-- warning: *NOT* handled - not .app dir, not executable file...
[91mCMake Error at /opt/cmake/share/cmake-3.12/Modules/BundleUtilities.cmake:966 (message):
error: fixup_bundle: not a valid bundle
Call Stack (most recent call first):
algos/testsProto/publisher/ecal/cmake_install.cmake:63 (fixup_bundle)
algos/testsProto/publisher/cmake_install.cmake:43 (include)
cmake_install.cmake:43 (include)
. Он пытается мне что-то сказать, кто-то может перевести?Разве это не поиск исполняемого файла?Он находит исполняемый файл, но ему не хватает некоторых аргументов?