Просто хотел создать библиотеку с использованием сторонней библиотеки, я использую Vcpkg и Cmake
CMakeLists.txt >
Код: Выделить всё
cmake_minimum_required(VERSION 3.28)
project(Vcpkg)
set (CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
find_package(fmt REQUIRED)
find_package(spdlog REQUIRED)
file(GLOB SOURCES src/*.cpp include/*.hpp)
add_library(Vcpkg SHARED ${SOURCES})
add_library(vcpkg::engine ALIAS Vcpkg)
target_include_directories(Vcpkg
PUBLIC
$
$
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src)
add_executable(akash ${SOURCES})
SET(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage")
SET(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}" )
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}" )
target_compile_features(akash PRIVATE cxx_std_20)
target_link_libraries(akash
PRIVATE
vcpkg::engine
fmt::fmt
spdlog::spdlog
)
Код: Выделить всё
1/5] Scanning /home/akashdiphazra/Downloads/Vcpkg/src/main.cpp for CXX dependencies
FAILED: CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi
/usr/bin/c++ -DVcpkg_EXPORTS -I/home/akashdiphazra/Downloads/Vcpkg/include -I/home/akashdiphazra/Downloads/Vcpkg/src -g -O0 -coverage -fprofile-arcs -ftest-coverage -g -std=gnu++20 -fPIC -fdiagnostics-color=always -E -x c++ /home/akashdiphazra/Downloads/Vcpkg/src/main.cpp -MT CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi -MD -MF CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi.d -fmodules-ts -fdeps-file=CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi -fdeps-target=CMakeFiles/Vcpkg.dir/src/main.cpp.o -fdeps-format=p1689r5 -o CMakeFiles/Vcpkg.dir/src/main.cpp.o.ddi.i
/home/akashdiphazra/Downloads/Vcpkg/src/main.cpp:1:10: fatal error: fmt/color.h: No such file or directory
1 | #include
| ^~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
make: *** [Makefile:10: debug] Error 1
Код: Выделить всё
# ninja log v6
15 26803 1719332434965250296 CMakeFiles/akash.dir/src/main.cpp.o 384a56197d066769
3 14 1719332434953250355 /home/akashdiphazra/Downloads/Vcpkg/build/linux-debug/CMakeFiles/akash.dir/CXXModules.json 4879662838ccf47d
3 14 1719332434953250355 CMakeFiles/akash.dir/CXX.dd 4879662838ccf47d
3 14 1719332434953250355 CMakeFiles/akash.dir/src/main.cpp.o.modmap 4879662838ccf47d
1 2305 1719333409493404124 build.ninja 430dfc98276d9b78
4 549 1719332374774547644 CMakeFiles/akash.dir/src/main.cpp.o.ddi 8ee06fab8c85eae4
53 4480 1719333409493404124 build.ninja 430dfc98276d9b78
он компилируется успешно, когда
Root Dir< /p>
Код: Выделить всё
cmake_minimum_required (VERSION 3.28)
project(Vcpkg)
find_package(fmt REQUIRED)
find_package(spdlog REQUIRED)
# Add sub directories
include_directories(include)
add_subdirectory(src)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
Код: Выделить всё
set (CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
SET(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage")
SET(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}" )
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}" )
add_executable(akash main.cpp)
target_compile_features(akash PRIVATE cxx_std_20)
target_link_libraries(akash fmt::fmt spdlog::spdlog)
Подробнее здесь: https://stackoverflow.com/questions/786 ... -and-vcpkg