Я установил пакет libconfig с менеджером Microsoft / vcpkg в Windows. И в Visual Studio пытается связать libconfig ++ с моим проектом, но он не может быть связан.
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
set(CMAKE_CXX_STANDARD 17)
############ Project name and version
set (TEST_MAJOR_VERSION 1)
set (TEST_MINOR_VERSION 0)
set (TEST_PATCH_VERSION 0)
set (TEST_VERSION ${TEST_MAJOR_VERSION}.${TEST_MINOR_VERSION}.${TEST_PATCH_VERSION})
# Include our cmake macros
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
include (CMakeHelpers)
############ Add projects
# Add main library
add_subdirectory (src)
init_target (test)
if(_version_allowed STREQUAL NEW)
message (STATUS "==== set project " ${TARGET_NAME})
project (${TARGET_NAME} VERSION ${TEST_VERSION})
else()
project (${TARGET_NAME})
endif()
file (GLOB SOURCE_FILES
*.cpp)
file (GLOB HEADER_FILES
*.h)
find_package(libconfig)
if(WIN32)
link_directories(G:/_Development/Projects/cpprestsdk/vcpkg/installed/x64-windows/lib)
include_directories(G:/_Development/Projects/cpprestsdk/vcpkg/installed/x64-windows/include)
endif()
add_executable(${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES})
target_link_libraries(test PRIVATE libconfig)
test.cpp
#include <libconfig.h++>
using namespace libconfig;
int main(int argc, char* argv[])
{
// libconfig
Config cfg;
return 0;
}
Ошибка:
------ Началось восстановление: Проект: CMakeLists, Конфигурация: RelWithDebInfo ------ Очистка ... 0 файлов. [1/2]
C: \ PROGRA ~ 2 \ MIB055 ~ 1 \ 2017 \ PROFES ~ 1 \ VC \ Tools \ MSVC \ 1416 ~ 1,270 \ Bin \ HostX64 \ x64 \ cl.exe
/ nologo / TP -IG: _Development \ Projects \ cppTest \ src
-Ig: _Development \ Проекты \ cpprestsdk \ vcpkg \ установившие \ x64-окна \ включают
/ DWIN32 / D_WINDOWS / W3 / GR / EHsc / MD / Zi / O2 / Ob1 / DNDEBUG
-std: c ++ 17 / showInclude /Fosrc\CMakeFiles\test.dir\test.cpp.obj / Fdsrc \ CMakeFiles \ test.dir \ / FS -c
G: _Development \ Проекты \ cppTest \ SRC \ test.cpp
G: _Development \ Проекты \ cpprestsdk \ vcpkg \ установлена \ x64-окна \ включать \ libconfig.h ++ (51):
предупреждение C4275: в качестве базы используется не интерфейс класса dll 'std :: exception'
для класса dll-интерфейса 'libconfig :: ConfigException' C: \ Program
Файлы (x86) \ Microsoft Visual
Студия \ 2017 \ Professional \ VC \ Tools \ MSVC \ 14.16.27023 \ включать \ vcruntime_exception.h (44):
примечание: см. объявление 'std :: exception'
G: _Development \ Проекты \ cpprestsdk \ vcpkg \ установлена \ x64-окна \ включать \ libconfig.h ++ (51):
примечание: см. объявление «libconfig :: ConfigException» [2/2] cmd.exe
/ C "cd. &&" C: \ Program Files (x86) \ Microsoft Visual
Студия \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ CMake \ CMake \ Bin \ cmake.exe»
-E vs_link_exe --intdir = src \ CMakeFiles \ test.dir --manifests - C: \ PROGRA ~ 2 \ MIB055 ~ 1 \ 2017 \ PROFES ~ 1 \ VC \ Tools \ MSVC \ 1416 ~ 1.270 \ bin \ Hostx64 \ x64 \ link.exe
/ nologo src \ CMakeFiles \ test.dir \ test.cpp.obj /out:src\test.exe
/implib:src\test.lib /pdb:src\test.pdb /version:0.0 / машина: x64
/ debug / INCREMENTAL / subsystem: console
-LIBPATH: G: _Development \ Проекты \ cpprestsdk \ vcpkg \ установившие \ x64-окна \ Lib
libconfig.lib kernel32.lib user32.lib gdi32.lib winspool.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
&& cd. "FAILED: src / test.exe cmd.exe / C" cd. && "C: \ Program
Файлы (x86) \ Microsoft Visual
Студия \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ CMake \ CMake \ Bin \ cmake.exe»
-E vs_link_exe --intdir = src \ CMakeFiles \ test.dir --manifests - C: \ PROGRA ~ 2 \ MIB055 ~ 1 \ 2017 \ PROFES ~ 1 \ VC \ Tools \ MSVC \ 1416 ~ 1.270 \ bin \ Hostx64 \ x64 \ link.exe
/ nologo src \ CMakeFiles \ test.dir \ test.cpp.obj /out:src\test.exe
/implib:src\test.lib /pdb:src\test.pdb /version:0.0 / машина: x64
/ debug / INCREMENTAL / subsystem: console
-LIBPATH: G: _Development \ Проекты \ cpprestsdk \ vcpkg \ установившие \ x64-окна \ Lib
libconfig.lib kernel32.lib user32.lib gdi32.lib winspool.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
&& cd. "LINK Pass 1: команда
«C: \ PROGRA ~ 2 \ MIB055 ~ 1 \ 2017 \ PROFES ~ 1 \ VC \ Tools \ MSVC \ 1416 ~ 1,270 \ Bin \ Hostx64 \ x64 \ link.exe
/ nologo src \ CMakeFiles \ test.dir \ test.cpp.obj /out:src\test.exe
/implib:src\test.lib /pdb:src\test.pdb /version:0.0 / машина: x64
/ debug / INCREMENTAL / subsystem: console
-LIBPATH: G: _Development \ Проекты \ cpprestsdk \ vcpkg \ установившие \ x64-окна \ Lib
libconfig.lib kernel32.lib user32.lib gdi32.lib winspool.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
/ MANIFEST /MANIFESTFILE:src\CMakeFiles\test.dir/intermediate.manifest
src \ CMakeFiles \ test.dir / manifest.res "не удалось (код выхода 1120) с
следующий вывод: C: \ Program Files (x86) \ Microsoft Visual
Studio \ 2017 \ Professional \ Common7 \ IDE \ test.cpp.obj: ошибка LNK2019:
неразрешенный внешний символ "__declspec (dllimport) public: __cdecl
libconfig :: Config :: Config (void) "(__imp _ ?? 0Config @ libconfig @@ QEAA @ XZ)
ссылка в функции main C: \ Program Files (x86) \ Microsoft VisualStudio \ 2017 \ Professional \ Common7 \ IDE \ test.cpp.obj: ошибка LNK2019:
неразрешенный внешний символ "__declspec (dllimport) public: virtual
__cdecl libconfig :: Config :: ~ Config (void) "(__imp _ ?? 1Config @ libconfig @@ UEAA @ XZ), на который есть ссылка в функции main
C: \ Program Files (x86) \ Microsoft Visual
Studio \ 2017 \ Professional \ Common7 \ IDE \ src \ test.exe: фатальная ошибка
LNK1120: 2 неразрешенных внешних ниндзя: сборка остановлена: подкоманда
не удалось.
Сборка не удалась.
Что не так?