Я начал изучать cmake и make недавно и столкнулся с проблемой, которую не могу решить.
У меня есть два проекта: небольшое тестовое приложение, использующее cmake в IDE CLion, и библиотека, в которой используется make, я не могу изменить ни одну из систем сборки. Я хотел бы собрать тот, который использует make, из проекта cmake. Файл make для библиотеки работает самостоятельно.
Это макет проекта:
project/CMakeLists.txt
project/libvz/Makefile
project/libvz/main.cpp
Я пробовал следующее:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.0.0)
project(builder)
add_custom_target("libvz""/usr/bin/make -f ${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")
В этом случае я получаю сообщение об ошибке: «/ bin / sh: / usr / bin / make -f / home / szil / project / libvz / Makefile: такого файла или каталога нет»
Я также пытался построить с помощью команд ExternalProject_Add и ExternalProject_Add_Step, но ни одна из них не работала для меня.
Любая помощь приветствуется,
Спасибо!
Вам, вероятно, просто нужно избегать make
команда в наборе кавычек. Делая это, CMake ищет исполняемый файл с именем «/ usr / bin / make -f …».
add_custom_target(libvz
/usr/bin/make -f "${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")
На первый взгляд, ExternalProject_Add
звучит как лучший инструмент для этой работы — может быть, это не работает по той же причине, что и эта?