У меня есть файл, который я создал, используя этот ответ , теперь, когда я хочу связать его с моей основной программой, я получаю неопределенную ссылку на функции.
неопределенная ссылка на `SymbolDAL :: SymbolDAL (std :: __cxx11 :: basic_string, std :: allocator> const &) '
неопределенная ссылка на` SymbolDAL :: GetOne (std :: __cxx11 :: basic_string, std :: allocator> const &) '
неопределенная ссылка на `SymbolInfoEntity :: GetPreviousCloseabi: cxx11'
это мой CMakeList для создания так:
cmake_minimum_required(VERSION 3.9)
project(DAL VERSION 1.0.1> DESCRIPTION "DAL - Data Access Layer this class connect with the sql
data base throw the Connection class")
set(CMAKE_CXX_STANDARD 17)
include(GNUInstallDirs)
add_library(DAL SHARED
src/AppSettingDAL.cpp
src/SettingsModificationDAL.cpp
src/SymbolDAL.cpp
src/AppSettingEntity.cpp
src/SettingsUpdaterEntity.cpp
src/SymbolInfoEntity.cpp
)
set_target_properties(DAL PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 1
PUBLIC_HEADER
include/AppSettingDAL.hpp
PUBLIC_HEADER
include/SettingsModificationDAL.hpp
include/SymbolDAL.hpp
include/AppSettingEntity.hpp
include/SettingsUpdaterEntity.hpp
include/SymbolInfoEntity.hpp
)
configure_file(DAL.pc.in DAL.pc @ONLY)
target_include_directories(DAL PRIVATE include)
target_include_directories(DAL PRIVATE src)
#target_include_directories(DAL PRIVATE .)
install(TARGETS DAL
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(FILES ${CMAKE_BINARY_DIR}/DAL.pc DESTINATION
${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)
и вот как я связываю его с моей основной программой: (соответствующая часть из файла CMAKE большего размера)
add_executable(test ${SOURCE_FILES})
SET(DAL_LAYER DAL)
include_directories(../lib/internal/DAL/include)
link_directories(../lib/internal/DAL)
target_link_libraries(test ${DAL_LAYER })
У меня есть еще один. Так что я собираю то же самое почему, но это ссылка Jast в порядке