【问题标题】:How to create a Shared object with also another .SO in Cmake [duplicate]如何在 Cmake 中使用另一个 .SO 创建共享对象 [重复]
【发布时间】:2020-05-05 16:39:55
【问题描述】:

我有我在 Cmake 中创建的共享对象,但我需要将它链接到另一个 .so 文件。 我怎么做? 这是我的 CMakeList.txt 文件

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/AppSettingEntity.cpp
        src/SettingsModificationDAL.cpp
        src/SymbolDAL.cpp
        src/SymbolInfoEntity.cpp
        )

set_target_properties(DAL PROPERTIES
        VERSION ${PROJECT_VERSION}
        SOVERSION 1
        PUBLIC_HEADER
        include/AppSettingsDAL.hpp
        include/SettingsModificationDAL.hpp
        include/AppSettingEntity.hpp
        include/SymbolDAL.hpp
        include/SymbolInfoEntity.hpp
        )
configure_file(DAL.pc.in DAL.pc @ONLY)
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)

我希望它链接到 lib connlib.so

【问题讨论】:

    标签: c++ cmake shared-libraries


    【解决方案1】:
    add_executable(DAL ...)
    target_link_libraries(DAL connlib)
    

    (注意:不要包含 EXT。它将由 cmake 基于您的操作系统完成。)

    【讨论】:

      猜你喜欢
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2012-11-30
      • 2021-10-29
      相关资源
      最近更新 更多