为了让我的 .cpp 和 .h 文件稍微整理一下,等待他们的职责,我决定将它们放入单独的文件夹中,我使用了以下结构:
根
|
-CMakeLists.txt [rootCmakeList]
src
|
-main.cpp
.......|
....... 数学
.......|
.......-CMakeLists.txt[mathCmakeList]
.......-Algebra.h
.......-Algebra.cpp
....... XML [xmlCmakeList]
... ....|
.......-CMakeLists.txt
.......-AwesomeXML.h
.......-AwesomeXML.cpp
[rootCmakeList] 看起来:
cmake_minimum_required(VERSION 3.11.3)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS_DEBUG "-g")
project(myProject)
#add exectuable
add_executable(myProject src/main.cpp)
target_include_directories(myProject PUBLIC "${src/XML}")
target_include_directories(myProject PUBLIC "${src/math}")
add_subdirectory(src/XML)
add_subdirectory(src/math)
target_link_libraries(myProject xml)#needed?
target_link_libraries(myProject math)#needed?
[mathCmakeList] 看起来:
include_directories(${myProject}src/math)
add_library(math Algebra.cpp)
[xmlCmakeList] 看起来:
include_directories(${myProject}src/xml)
add_library(xml AwesomeXML.cpp)
到目前为止一切顺利,没有任何问题。但是如果我想#include Algebra.h 到 AweseomeXML.cpp 我找不到文件。
老实说,我什至不确定 cmake 命令add_library和target_link_libraries在这里是否真的有意义,因为我不想创建自己的库,只是想整理一下我的文件,等待他们的主题。