【问题标题】:How to use an external shared library? [duplicate]如何使用外部共享库? [复制]
【发布时间】:2020-08-20 14:19:46
【问题描述】:

我在 C++ 中使用 CMake,并且在另一个项目中有一个共享库。我已将这些行添加到我的 CMake 文件中:

find_library(lib1_location NAMES myLib)
message("myLib at: ${lib1_location}")
target_link_libraries(myProject ${lib1_location})

它成功地找到了库。

在我的 C++ 头文件中,我尝试将其仅用于:

#include "myLib.h"

但它找不到它。我还需要做什么才能使用这个共享库?感谢您的耐心等待。

【问题讨论】:

标签: c++ cmake


【解决方案1】:

您的 CMake 代码将正确找到 myLib 库文件,但找不到库的头文件。我想您想在项目编译期间将这些标头添加到 include 目录 中。与find_library()类似,可以使用find_path()获取包含头文件的include目录:

# Look for a path containing the 'myLib.h' header file, using a 
#   hard-coded hint path if necessary.
find_path(lib1_include_directory "myLib.h"
    PATHS "/path/to/lib1/headers"
)
message("myLib headers at: ${lib1_include_directory}")
# Use this path as an include directory during compilation of myProject.
target_include_directories(myProject PRIVATE ${lib1_include_directory})

find_library(lib1_location NAMES myLib)
message("myLib at: ${lib1_location}")
target_link_libraries(myProject ${lib1_location})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2018-08-11
    相关资源
    最近更新 更多