【问题标题】:CMake Add own library to project using find_library()CMake 使用 find_library() 将自己的库添加到项目中
【发布时间】:2016-05-08 12:38:27
【问题描述】:

我目前正在创建一组应该用于 使用 CLion 的不同项目。我的问题是如何实现这个 功能。

到目前为止,我研究了以下相关问题 这并没有真正解决我的问题:

我创建了两个示例项目“TestLib”和“TestProj”:

  • 测试库
    • src
      • 类.h
      • 类.cpp
    • CMakeList.txt
  • 测试项目
    • main.cpp
    • CMakeList.txt

"TestLib" 的 CMakeList.txt 目前如下所示:

 cmake_minimum_required(VERSION 3.5)
 project(TestLib)

 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")

 set(SOURCE_FILES src/Class.cpp src/Class.h)
 add_library(TestLib ${SOURCE_FILES})> 

现在,我尝试使用以下方法在“TestProj”中使用这个库 CMakeLists.txt

 cmake_minimum_required(VERSION 3.5)
 project(TestProj)

 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
 find_library(CLASS_LIB TestLib HINTS /home/user/.CLion2016.1/system/cmake/generated/TestLib-7507f101/7507f101/Debug)

 set(SOURCE_FILES main.cpp)
 add_executable(TestProj ${SOURCE_FILES})

 target_link_libraries(TestProj CLASS_LIB)

CMake 找到了该库,但是

  1. 我无权访问库的Class.h
  2. 写整个/home/user/.CLion2016.1/...-到库的路径好像不对

非常感谢任何帮助。谢谢。

【问题讨论】:

标签: cmake clion


【解决方案1】:

如果目标是让您的库可用于多个其他项目,推荐的方法是让您的库项目的安装过程生成 CMake 配置文件。不幸的是,执行此操作的过程有点神秘,但https://cmake.org/cmake/help/git-master/manual/cmake-packages.7.html#creating-packages 应该为您提供如何执行此操作的起点。

【讨论】:

    【解决方案2】:

    您可以将 CMakeLists.txt 放在项目的根目录中 有这样的内容:

    add_subdirectory(TestLib)
    add_subdirectory(TestProj)
    

    之后你就可以写在TestProj的CMakeLists.txt里了

    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../TestLib)
    target_link_libraries(TestProj TestList)
    

    并且不需要使用find_library

    【讨论】:

    • 您是说target_link_libraries(TestProj TestLib) 吗?
    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 2017-02-16
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多