首页 > 解决方案 > cmake:安装外部提供的包含和库

问题描述

我有一个非常简单的问题,我找不到解决方案:

我正在与一家公司合作,该公司偶尔会向我发送两个目录,一个带有 .h 文件,第二个带有两种形式的库,共享和静态。说 -

X/include/*
X/lib/libX.so
X/lib/libX.a

我想用一个执行这个简单操作的 cmake 项目来包装这个输入 - 创建一个我可以安装的 cmake 目标、别名、版本等。

标签: c++buildcmakeinstallationcmake-language

解决方案


你可能想看看这里,因为它很好地解释了如何导入目标。

像这样的东西应该工作:

# Shared library
add_library(LibX-Shared SHARED IMPORTED)
set_target_properties(LibX-Shared PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "X/include"
  IMPORTED_LOCATION "X/lib/libX.so"
)

# Static library
add_library(LibX-Static STATIC IMPORTED)
set_target_properties(LibX-Static PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "X/include"
  IMPORTED_LOCATION "X/lib/libX.a"
)

然后你应该能够在 CMake 中使用这些目标:

target_link_libraries(myexe LibX-Shared)

推荐阅读