Таким образом, моя структура каталогов выглядит как
/
-- CMakeLists.txt
-- bencode/
---- bType.hpp
---- bType.cpp
---- Decoder.hpp
---- Decoder.cpp
---- CMakeLists.txt
-- torrent/
---- main.cpp
---- Torrent.hpp
---- Torrent.cpp
---- Tracker.hpp
---- Tracker.cpp
---- CMakeLists.txt
. root CMakeLists.txt -
cmake_minimum_required(VERSION 3.16)
project(Torrent VERSION 1.0.0)
add_subdirectory(bencode)
add_subdirectory(torrent)
. Bencode / CMakeLists.txt -
add_library(
Decoder
Decoder.hpp
Decoder.cpp
)
add_library(
bType
bType.hpp
bType.cpp
)
target_include_directories(bType PRIVATE "${CMAKE_CURRENT_SOURCE/_DIR}")
target_include_directories(Decoder PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
Torrent / CMakeLists.txt - это
add_library(
Torrent
Torrent.hpp
Torrent.cpp
)
add_library(
Tracker
Tracker.hpp
Tracker.cpp
)
add_executable(main main.cpp)
target_link_libraries(
main PRIVATE
Torrent Tracker
Decoder bType
)
Всякий раз, когда я строю, компиляция Torrent.cpp
завершается неудачно, так как включает Decoder.hpp
, который не находится в том же каталоге, а команда построения не включает путь во время компиляции
[build] ../torrent/Torrent.cpp:5:10: fatal error: Decoder.hpp: No such file or directory
[build] #include <Decoder.hpp>
[build] ^~~~~~~~~~~~~
[build] comp
При компиляции должен был быть флаг -I
, но его нет.
Помогите выяснить, почему?