我需要在CMake项目中包含ZIMPL。在源代码中,ZIMPL头文件的包含方式如下:
#include zimpl/bool.h
在 ZIMPL 中,实际路径为
zimpl/src/bool.h
。我该如何告诉 CMake(或 C 链接器)在遇到 zimpl/
包含时查找 zimpl/src/
?为了保持平台独立性,我更喜欢避免创建符号链接。
file(COPY)
或configure_file(.. COPY_ONLY)
实现:file(COPY <source_include_dir>/zimpl/src/bool.h
DESTINATION ${CMAKE_BINARY_DIR}/include/zimple/
)
include_directories(${CMAKE_BINARY_DIR}/include)
include_directories()
命令来实现。它需要一个目录列表作为参数。zimpl/bool.h
,因此它找不到 - 尽管CMake已经包含了相应的src/
目录。 - mattmiltenzimpl / bool.h
重新映射到zimpl / src / bool.h
吗?你不能这样做,因为包含路径只是编译器搜索的根目录。所以如果根是,比方说, zimpl/src/
,你必须将其包含为<bool.h>
。我建议创建一个单独的include/zimpl
目录。 - Tim Čas
#include
中的相对路径与文件层次结构中的路径不同。投票重新打开。 - Tsyvarev