如何提供支持静态链接的 cmake 包(又名 Config.cmake)

Posted

技术标签:

【中文标题】如何提供支持静态链接的 cmake 包(又名 Config.cmake)【英文标题】:How to provide a cmake package (aka Config.cmake) that supports static linking 【发布时间】:2019-06-12 20:06:50 【问题描述】:

*** 上的大多数问题都是希望静态链接到某个库的用户。假设我是库作者,我正在尝试定义一个Config.cmake,它允许我的用户在动态链接和静态链接与我的库之间进行选择。我应该如何构建它?

【问题讨论】:

【参考方案1】:

我会使用像 MY_LIBRARY_LINK_STATIC 这样的变量,并根据值(true 用于静态链接,false 用于动态)决定使用什么类型。

【讨论】:

但事情没有这么简单吧?当我创建一个共享库时,我假设 foo.so 中的内置动态依赖项足以指定传递依赖项。使用静态链接,我必须发布传递依赖项,因为它们都需要包含在链接器行中。

以上是关于如何提供支持静态链接的 cmake 包(又名 Config.cmake)的主要内容,如果未能解决你的问题,请参考以下文章

使用 cmake 如何静态链接一些库和动态链接其他库?

如何链接到静态库?

如何将 TensorFlow Lite 构建为静态库并从单独的(CMake)项目链接到它?

你如何告诉 CMake 静态链接到使用 find_package 找到的包中的库?

如何在我的项目中链接 re2 库,就像使用 cmake 的静态库一样

opencv静态链接库cmake链接顺序问题