Я использую LibTorch и OpenCV для программы на Cpp. Компиляция и сборка выполняются на Linux с использованием CMake. Программа собирается и запускается, как и ожидалось.
Я хочу использовать исполняемый файл, созданный CMake на другом компьютере Linux. Проблема в том, что я не хочу устанавливать ни LibTorch, ни OpenCV на другую машину. Я бы предпочел предоставить пользователю один исполняемый файл, если это возможно.
Как CMake может создать один независимый исполняемый файл? Если создание только одного файла не имеет значения, как CMake может скопировать все необходимые библиотеки в один каталог?
Текущий файл CMake:
cmake_minimum_required(VERSION 2.8)
project(prediction)
list(APPEND CMAKE_PREFIX_PATH “libtorch”) # the folder where libtorch in found
set(CMAKE_BUILD_TYPE Release)
find_package( OpenCV REQUIRED )
find_package( Torch REQUIRED )
if(NOT Torch_FOUND)
message(FATAL_ERROR “Pytorch Not Found!”)
endif(NOT Torch_FOUND)
message(STATUS “Pytorch status:”)
message(STATUS " libraries: ${TORCH_LIBRARIES}")
message(STATUS “OpenCV library status:”)
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
file(GLOB SOURCES ".h" ".cpp") # Link all headers and sources in root dir
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(entrypoint ${SOURCES})
target_link_libraries(entrypoint ${TORCH_LIBRARIES} ${OpenCV_LIBS})
set_property(TARGET entrypoint PROPERTY CXX_STANDARD 14)
####### EDIT
Спасибо за ответы. Следуя приведенному ниже ответу Phesho_T, я получил сборку stati c LibTorch, но он не скомпилируется с инструкцией set (). Выдает C10_LIBRARY NOTFOUND.
Я думаю, что я попытаюсь использовать общие библиотеки. Как CMake можно поручить скопировать соответствующие общие библиотеки в папку «build», чтобы я мог упаковать все в файл .zip и отправить его пользователю.