如何通过CMakeLists.txt实现带库名的C++头文件引用?
修改方案
要实现#include "myLibName/myClass.h"的引用形式,需按以下步骤操作:
1. 调整目录名称
将原目录someDirectory重命名为myLibName,修改后的目录结构为:
main.cxx CMakeLists.txt myLibName/myClass.cxx myLibName/myClass.h
2. 修改CMakeLists.txt
更新后的配置如下:
cmake_minimum_required(VERSION 2.8) project(cmakePjt) # 包含项目根目录,让编译器从根目录开始查找头文件 include_directories(${CMAKE_SOURCE_DIR}) # 将myClass的实现文件加入编译列表,避免链接错误 add_executable(cmakePjt main.cxx myLibName/myClass.cxx)
可选:更规范的CMake写法(适用于CMake 3.10+)
若后续升级CMake版本,建议使用目标专属的包含路径设置,避免污染全局编译环境:
cmake_minimum_required(VERSION 3.10) project(cmakePjt) add_executable(cmakePjt main.cxx myLibName/myClass.cxx) # 仅为当前可执行目标设置私有包含路径 target_include_directories(cmakePjt PRIVATE ${CMAKE_SOURCE_DIR})
内容的提问来源于stack exchange,提问作者Lalu Paul
相关产品推荐
相关产品推荐

