Я использую CLion и mingw-w64.
CMakeLists.txt моего исполняемого файла:
cmake_minimum_required(VERSION 3.12)
project(test_exe)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "D:\\test")
add_subdirectory(test_lib)
include_directories(test_lib/include;test_lib/deps/include)
link_directories(test_lib/deps/lib)
add_executable(test_exe main.cpp)
target_link_libraries(test_exe test_lib)
CMakeLists.txt test_lib:
cmake_minimum_required(VERSION 3.12)
project(test_lib)
set(CMAKE_CXX_STANDARD 17)
include_directories(include;deps/include)
link_directories(deps/lib)
file(GLOB_RECURSE LIB_SOURCES "include/*.*" "src/*.*")
add_library(test_lib SHARED ${LIB_SOURCES})
target_link_libraries(test_lib libfreetype.a libpugixml.dll.a)
Проблема заключается в том,что, когда я добавляю библиотеку с add_library(test_lib SHARED ${LIB_SOURCES})
, я получаю undefined reference
ошибки, но когда я добавляю библиотеку с add_library(test_lib ${LIB_SOURCES})
, она отлично работает.
Пустой проект связывается, как ожидается (и SHARED, и STATIC), но мне интереснопочему этот не работает?Из-за библиотек, на которые я ссылаюсь в файле test_lib CMakeLists.txt?