小编use*_*012的帖子

CMake post-build-event:复制编译的库

我的项目的二进制目录结构目前是这样的(Windows):

bin/mainProject/{Debug,Release}
bin/library1/{Debug,Release}
bin/library2/{Debug,Release}
...
bin/libraryN/{Debug,Release}
Run Code Online (Sandbox Code Playgroud)

我想将库library1lib.dll, ...复制libraryNlib.dllbin/mainProject/{Debug,Release}构建后的目录中。

对于 CMake,我认为使用构建后事件是可行的,因此我尝试将其添加到每个库中CMakeLists.txt

add_custom_command(TARGET library1 POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy
        ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/library1lib.dll
        ${CMAKE_BINARY_DIR}/mainProject/${CMAKE_BUILD_TYPE}/
)
Run Code Online (Sandbox Code Playgroud)

目前,有两个问题:

  1. ${CMAKE_BUILD_TYPE} 似乎没有定义,至少我在输出窗口中得到了该变量的空字符串。
  2. 是否有可能使构建后事件更通用?喜欢用一些变量替换实际的 dll 名称?

cmake

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

cmake ×1