У меня есть эта структура проекта: < /p>
MaterialStack/
├─ CMakeLists.txt
├─ libraries/
│ └─ material_data_lib/
│ ├─ CMakeLists.txt
│ ├─ conanfile.py
│ └─ src/MaterialProjectCommunicator.h...
└─ build_native/
< /code>
из корневой папки я запустил следующие команды: < /p>
mkdir build_native && cd build_native
conan install ../libraries/material_data_lib \
--output-folder=. \
--profile:host=native \
--profile:build=native \
--build=missing
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=/home/emmynoether/Dokumente/Webseite/MaterialStack/build_native/build/Release/generators/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release
cmake --build .
Соответствующая часть моего корневого cmakelists.txt заключается в следующем:
make_minimum_required(VERSION 3.21)
project(qt3d_wasm_project VERSION 0.1 LANGUAGES CXX)
#Conan Toolchain hardcoded because I do not understand how to do it better
include("${CMAKE_HOME_DIRECTORY}/build_native/build/Release/generators/conan_toolchain.cmake")
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
add_subdirectory(libraries/material_data_lib)
Соответствующая часть cmakelists.txt в моей библиотеке:
find_package(nlohmann_json CONFIG REQUIRED) # erzeugt nlohmann_json::nlohmann_json
find_package(spdlog CONFIG REQUIRED)
add_library(MatDataFetchLib
src/MaterialDataFactory.cpp
src/HardCodeDatabase.cpp
src/MaterialProjectCommunicator.cpp
src/utils.cpp
)
target_include_directories(MatDataFetchLib
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_link_libraries(MatDataFetchLib
PUBLIC
nlohmann_json::nlohmann_json
spdlog::spdlog_header_only
)
После запуска cmake-build , с выводом «встроенный целевой matdatafetchlib" , он все еще не может включать .
Подробнее здесь: https://stackoverflow.com/questions/797 ... earch-path