我最近开始学习cmake和make,我遇到了一个我无法解决的问题 我有两个项目,一个在IDE CLion中使用cmake的小型测试应用程序和一个使用make的库,我无法更改任何一个的构建系统。我想从cmake项目构建一个使用make的那个。库的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命令进行构建,但这两个命令都没有。
感谢任何帮助, THX!
答案 0 :(得分:4)
您可能只需要避免将整个make
命令包装在一组引号中。通过这样做,CMake正在寻找一个名为“/ usr / bin / make -f ...”的可执行文件。
add_custom_target(libvz
/usr/bin/make -f "${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")
从表面上看,ExternalProject_Add
听起来像是一个更好的工具 - 也许它的工作原理不一样吗?