связанный файл с использованием cmake - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть файл, который я создал, используя этот ответ , теперь, когда я хочу связать его с моей основной программой, я получаю неопределенную ссылку на функции.

неопределенная ссылка на `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 в порядке

...