如何在CMake的target_include_directories后保留#include的glm路径前缀?
解决CMake头文件路径前缀保留问题
目前你的target_include_directories直接指向了glm文件夹本身,编译器会在glm目录下直接查找头文件,所以才需要用#include <something.h>。要保留#include <glm/something.h>的写法,不需要额外嵌套文件夹,只需要调整头文件搜索路径到glm的父目录即可:
修改CMake配置为:
target_include_directories(targetA PRIVATE ${CMAKE_SOURCE_DIR}/../external/)
这样CMake会将external目录加入头文件搜索路径,当你写#include <glm/something.h>时,编译器会自动在external/glm/下查找对应的头文件,既保留了原有的路径前缀写法,也不需要调整external目录下的文件夹结构。
额外补充:如果external下还有其他第三方库需要引入,这种方式也能统一管理,后续引入其他库时,直接用#include <其他库名/xxx.h>的格式即可,不需要重复添加多个子目录到搜索路径。
内容的提问来源于stack exchange,提问作者Andrey
相关产品推荐
相关产品推荐

