我有一个非常简单的问题,我找不到解决方案:
我正在与一家公司合作,该公司偶尔会向我发送两个目录,一个带有 .h 文件,第二个带有两种形式的库,共享和静态。说 -
X/include/*
X/lib/libX.so
X/lib/libX.a
我想用一个执行这个简单操作的 cmake 项目来包装这个输入 - 创建一个我可以安装的 cmake 目标、别名、版本等。
我有一个非常简单的问题,我找不到解决方案:
我正在与一家公司合作,该公司偶尔会向我发送两个目录,一个带有 .h 文件,第二个带有两种形式的库,共享和静态。说 -
X/include/*
X/lib/libX.so
X/lib/libX.a
我想用一个执行这个简单操作的 cmake 项目来包装这个输入 - 创建一个我可以安装的 cmake 目标、别名、版本等。
你可能想看看这里,因为它很好地解释了如何导入目标。
像这样的东西应该工作:
# 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)