如何使用CMakeLists.txt在C++头文件中包含一个库名称?

cgvd09ve  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(219)

我有C++源代码在以下层次结构中

main.cxx
CMakeLists.txt
someDirectory/myClass.cxx
someDirectory/myClass.h

我的CMakeLists.txt如下

cmake_minimum_required(VERSION 2.8)
project(cmakePjt)
include_directories(someDirectory)
add_executable(cmakePjt main.cxx)

My main.cxx包含myClass,如下所示


# include "myClass.h"

上面的方法是有效的!但是我想在我的main.cxx中包含myClass,如下所示,我应该如何为此修改我的CMakeLists.txt?


# include "myLibName/myClass.h"
t3irkdon

t3irkdon1#

CMakeLists无法执行任何操作。您必须实际创建一个名为myLibName的现有实际目录,将.h文件移动到该目录,并添加该目录的包含目录以包括搜索路径。
例如,您的项目可能如下所示:

main.cxx
CMakeLists.txt
myLibName/src/myClass.cxx
myLibName/include/myLibName/myClass.h
myLibName/CMakeLists.txt

其中:


# myLibName/CMakeLists.txt

add_library(myLibName src/myClass.cxx)
target_include_directories(myLibName PUBLIC ./include)

# CMakeLists.txt

add_subdirectory(myLibName)
add_executable(cmakePjt mina.cxx)
target_link_libraries(cmakePjt PRIVATE myLibName)

相关问题