如何链接到多个不支持cmake的第三方库

pieyvz9o  于 2022-12-04  发布在  其他
关注(0)|答案(2)|浏览(122)

我目前正在将一个项目移植到CMake,它依赖于一堆第三方库,但没有一个支持CMake。到目前为止,项目编译得很好,但我需要将可执行文件链接到这些第三方库。CMake是否提供了任何方法来创建一个构建目标,一旦作为链接目标添加,就可以使项目链接到所有第三方库?

x9ybnkn6

x9ybnkn61#

您可以创建INTERFACE库目标,并为其指定要链接的包含目录列表和库列表。只要链接该目标,这些包含目录和库就会传播到使用者。

# Create the library which represents all third-party libraries
add_library(third_party_libs INTERFACE)
target_include_directories(third_party_libs INTERFACE
  <include-directory-1>
  <include-directory-2>
  ...
)
target_link_libraries(third_party_libs INTERFACE
  <external-lib-1>
  <external-lib-2>
  ...
)

# Create executable in your project
add_executable(my_exe <sources...>)

# This will propagate to the executable all include directories and libraries from
# the INTERFACE library target.
target_link_libraries(my_exe third_party_libs)
2w2cym1i

2w2cym1i2#

摄取不提供自己的CMake配置模块的第三方库的正确方法是为每个包编写自己的自定义查找模块,每个查找模块指定要用作IMPORTED目标的库集。
参考编号:

相关问题