generate_export_header 典型用法

mev*_*ron 2 dll cmake

我正在尝试使用generate_export_header函数。我的库源代码位于该src文件夹中,因此 CMake 在 处生成导出标头src/mylib_export.h。为了使用此导出标头,我是否只需将其复制到我的库的include文件夹中以在实现代码中使用?这是我正在使用的 CMake 代码片段:

ADD_LIBRARY(${PROJECT_NAME} ${LIB_TYPE} ${SOURCES})
GENERATE_EXPORT_HEADER(${PROJECT_NAME})

FILE(COPY 
    ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h 
    DESTINATION 
    ${PROJECT_SOURCE_DIR}/include
)
Run Code Online (Sandbox Code Playgroud)

有没有更多的 CMake 方法来做到这一点?

dre*_*rjm 6

当我使用 CMake 执行此操作时,我通常将二进制文件夹添加到 include_directories 中,并且根本不复制导出标头。

这样,源代码树中就没有任何生成的部分,这使得与源代码控制一起使用变得更简单,而且我通常为每个源代码树使用超过 1 个构建树来构建项目,主要是为了允许在超过 1 个编译器下构建或构建使用不同的设置或使用相同的编译器单独的 32 位/64 位构建树。