0

.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) 

これまでのところ良好で、問題はありません。しかし、Algebra.h を AweseomeXML.cpp に #include したい場合、ファイルが見つかりません。

正直なところ、cmake コマンドのadd_librarytarget_link_librariesがここで本当に意味があるかどうかさえわかりません。独自のライブラリを作成したくないので、トピックで保留中のファイルを少し片付けたいだけだからです。

4

1 に答える 1