3

我最近开始学习 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 命令进行构建,但它们都不适合我。

感谢您提供任何帮助,谢谢!

4

1 回答 1

5

您可能只需要避免将整个make命令包含在一组引号中。通过这样做,CMake 正在寻找一个名为“/usr/bin/make -f ...”的可执行文件。

add_custom_target(libvz
                  /usr/bin/make -f "${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")

从表面上看,ExternalProject_Add对于这项工作来说,这听起来像是一个更好的工具——也许它不是出于同样的原因?

于 2014-09-14T08:19:13.150 回答