CMake Windows隐式链接

时间:2017-02-08 22:17:54

标签: cmake

在CMake项目中处理隐式链接的实际方法是什么?

在Windows中,.dll在运行时链接,因此CMake只需要在编译期间链接.lib文件。使用find_package可以做得更好。但是,在编译期间,CMake永远不会将对应于链接的.dll文件的.lib复制到链接的可执行文件的输出路径。

这是CMake留给用户的东西吗?

对于您链接的每个库,必须手动查找dll并将其手动复制到输出目录或编写个人,这似乎有点混乱,更不用说非跨平台了。 CMake命令,如下所示,按照您找到的包/库链接执行此操作。

add_custom_command(
        TARGET MyTarget POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_if_different
        "${PROJECT_SOURCE_DIR}/libs/SDL2.dll"
        $<TARGET_FILE_DIR:MyTarget>
    )

0 个答案:

没有答案