c++ - cmake install 不触发自定义命令

标签 c++ c cmake

在我的项目中,我使用 add_custom_command 生成一些输出文件:

    add_custom_command(
        OUTPUT ${LIB_NAME}
        # commands
    )
    add_custom_target(Core-static DEPENDS ${LIB_NAME})

然后我收到了安装该库的说明:

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}"
        DESTINATION "${CORE_INSTALL_DIR}/lib/"
)

当我手动构建核心静态目标时,我可以成功运行安装。但是,运行安装不会触发自定义命令,并且不会生成库,从而导致错误。此外,由于某种原因,重建解决方案(在 Visual Studio 中)不会触发核心静态项目构建。

最佳答案

在 CMake 中,安装触发器全部(伪)目标。

为了使您的文件可安装,您需要强制ALL目标构建您的文件。目前,您的自定义目标 Core-static 不是默认构建的(ALL 目标)。要解决此问题,请在创建目标时添加 ALL 关键字:

add_custom_target(Core-static ALL DEPENDS ${LIB_NAME})

关于c++ - cmake install 不触发自定义命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54257763/

相关文章:

c++ - 构造函数后面的宏。这是什么意思?

c - Linux:给定一个ID,检查它的PID或TID是否在C中

带浮点变量的 C++ 递归函数

c++获取文件的一部分

C语言: Copying strings one by one to an array

在循环中创建一个新文件,其中包含 C 中循环的数量

matlab - 如何使用cmake命令更改MATLAB路径以编译FLANN的mex文件?

c++ - 使用 Cmake 和 MinGW 编译 OpenCV 2.4.13

testing - 托管在 github 上的 cmake 项目的持续集成软件

c++ - Linux make 无法链接到 Boost 非 header 库