如何将静态库和共享库与 CMake 混合链接

2023-12-30

我有一个在 Linux 上构建的共享库 libtest.so。它链接到几个共享库。现在我有一些第三方静态库链接到 libtest.so。我知道可以通过直接调用 gcc 来实现:

链接时可以混合使用静态库和共享库吗? https://stackoverflow.com/questions/2954387/can-i-mix-static-and-shared-object-libraries-when-linking

我的问题是如何使用 CMake 做同样的事情?


我没有看到问题所在。使用静态库,您可以执行以下操作:

target_link_libraries(my_target_or_executable /home/me/somedir/mymagiclib.a)

Or

target_link_libraries(my_target_or_executable -L/home/me/somedir/)
target_link_libraries(my_target_or_executable mymagiclib.a)

昨天我什至以这种方式链接到共享库。因为我在来自多个来源的 gcc 地址清理程序库中遇到了冲突。

但请注意与正常方式链接到库的区别。为您libtest.a, 你做这个:

target_link_libraries(my_target_or_executable -ltest)

请注意,您删除了lib此处的前缀。但当您想手动指定库时,请不要这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将静态库和共享库与 CMake 混合链接 的相关文章

  • 奇怪的函数参数名称行为

    我问了一个关于cmake和传递变量的问题here https stackoverflow com questions 14375519 cmake how to write a nice function that passes varia
  • C# 4.0 动态对象和 WinAPI 接口,如 IShellItem(无需在 C# 源代码中定义它们)

    是否可以 使用 C 4 0 中的新动态关键字 使用接口 如 IShellItem 或其他 WinAPI 接口 而无需在 C 源代码中定义它们 或者至少不定义接口成员 我正在尝试类似的事情 const string IShellItemGui
  • CMake第三方库安装

    我是编程新手 对于我的研究项目 我需要安装一个第三方库以便与 CMake 一起使用 GitHub项目 https github com cpp io2d P0267 RefImpl blob master BUILDING md 我在我的电
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何在运行时更改android应用程序名称和图标?

    安装 Android 应用程序后 当您按下应用程序中的按钮时 是否可以动态更改应用程序图标和名称 在运行时 这是到目前为止的代码 getPackageManager setComponentEnabledSetting new Compon
  • 如何配置 cmake 以链接到预构建的共享库?

    我有一个项目 在子目录中包含 opencv 的预构建版本 例如 我的项目 CMakeLists txt src 第三者 CMakeLists txt 开放式CV 包括 库 我想链接位于third party目录中的opencv版本 我的问题
  • 通过 cmake 链接作为外部项目包含的 opencv 库[重复]

    这个问题在这里已经有答案了 我对 cmake 比较陌生 经过几天的努力无法弄清楚以下事情 我有一个依赖于 opencv 的项目 它本身就是一个 cmake 项目 我想静态链接 opencv 库 我正在做的是我的项目中有一份 opencv 源
  • 动态调整大小的 boost::asio::buffer

    我正在阅读boost asio ip udp socket像这样 using boost asio ip udp char recv buf 128 udp endpoint sender endpoint size t len socke
  • 在 Android 中动态填充年份的微调器?

    我一直在绞尽脑汁试图让它发挥作用 我想动态地将 1900 年到当前年份的年份输入到旋转器中 我认为使用 XML 定义的数组不可能做到这一点 但是我可以使用数组适配器来做到这一点吗 这是我到目前为止所拥有的 ArrayList
  • Web 服务器可以动态生成可执行文件吗?

    尼尼特网 http Ninite com目前似乎正在这样做 我想知道怎么做 虽然他们有可能预先生成应用程序的每种组合 但这似乎不太可能 hacky 该网站似乎没有创建可执行文件 只是提供下载 编辑 即时创建这些巨大的下载会给服务器带来巨大的
  • 使用 CMake 时出现 Qt moc 错误

    我正在尝试编写一个 OpenCV 应用程序 使用 Qt 创建 GUI 并使用 CMake 生成 makefile 我遇到的问题是 当我尝试执行make命令 我收到错误 该文件是使用 5 2 1 中的 moc 生成的 它不能与此版本的 Qt
  • 你能从另一个文件中包含一个通用的 cmake 最小值吗?

    我对 cmake 很陌生 有 makefile 背景 我喜欢用类似的东西include cmake utils header cmake 包含 cmake 文件的常见片段 以便我可以将它们包含在我的项目中 但只能在一处更改一次 在哪里cma
  • 如何修复此语句可能会失败 [-Werror=implicit-fallthrough=]?

    什么是 this statement may fall through Werror implicit fallthrough mean 我在编译 at 语句时收到此错误 如下所示 switch eT case SEL CRIT TYPE1
  • 动态添加 id 到每个表格单元格

    我正在尝试创建一个动态 js 表 我想动态地为每个单元格提供 id 我想使用这些 id 在不同的 js 事件处理程序中使用 怎样才能做到呢 我尝试过不同的方法 但没有一个有效
  • CMake 找不到 boost

    Windows 7 64 位 CMake 2 8 10 Steps 下载加速 http sourceforge net projects boost files boost 1 51 0 http sourceforge net proje
  • Fortran 77 中的局部变量是静态的还是堆栈动态的?

    对于我的编程语言 第一类硬件问题询问 FORTRAN 中的局部变量是静态的还是堆栈动态的 初始化为默认值的局部变量是静态的还是堆栈动态的 向我展示一些带有解释的代码以支持您的答案 提示 检查这一点的最简单方法是让您的程序测试子程序的历史敏感
  • 如何获取调用方法的参数值?

    Question 我正在编写一些需要能够获得的代码values调用该类的方法的参数 我知道如何一直获取 ParameterInfo 数组 但我不知道如何获取值 这可能吗 如果是 我认为这与使用 MethodInfo 对象中的 MethodB
  • 我可以通过编程方式选择 Android 布局文件夹吗?

    我正在构建一个 Android 应用程序 它使用不同的布局文件夹 即 Large xlarge 等 根据屏幕尺寸调整大小 唯一的问题是 我想为用户提供一种在小屏幕布局和大屏幕布局之间切换的方法 以防他们拥有无法识别 xlarge 标签的前蜂
  • Pythonlibs3 CMake 和 macOS

    更新2 将以下两行添加到我的 CMake 文件中时 成功找到了 python 3 及其库 这只在终端中工作的原因是因为 CLion 使用其捆绑版本的 CMake 3 6 3 而我的终端使用的更新版本 3 7 2 正确找到了 python F
  • 如何使 clion 与以下 make 和 pkg-config 一起工作?

    我有以下简单的 C 程序 它通知我我在 Xfce 中的哪个工作区 我可以成功编译它并通过命令使用它 gcc O2 DWNCK I KNOW THIS IS UNSTABLE o wsndpkg config cflags libs libn

随机推荐

  • 在环境变量中设置额外的主机

    我正在使用 docker compose 来运行我的应用程序 为此 我需要在容器内设置主机 这取决于我正在运行的环境 我的方法是 创建环境文件并设置变量 application env SERVER IP 10 10 9 134 我的 do
  • 发出拉取请求后,Jenkins 将禁用分支上的项目构建

    注意 我只在我的一个分支中设置了 Jenkinsfile 而不是在主分支中设置 我已经设置了 Git webhooks 来监视推送到我的 Github 存储库的事件 但是 我注意到我的 Jenkins 构建作为分支工作正常 拾取推送事件 触
  • 从 SQL 表中选择行的百分比?

    我有一个带有 PHP 脚本的网站 该脚本内部有一个 SQL 查询 返回由 JavaScript 文件访问的数据 该数据是一个巨大的航班数据列表 我需要能够随机选择 比方说 任何指定日期的总航班数的 40 为了论证起见 让我们这样说 quer
  • 指针可以指向它自己吗?

    我的问题是 如果指针变量的地址与其值相同 那么它真的指向自身吗 例如 在下面的代码中 是a指向自身的指针 include
  • 熊猫的分层抽样

    我看过Sklearn 分层抽样文档 http scikit learn org stable modules generated sklearn model selection train test split html以及熊猫文档 htt
  • 对象方法的匿名函数[重复]

    这个问题在这里已经有答案了 可能的重复 直接调用分配给对象属性的闭包 https stackoverflow com questions 4535330 calling closure assigned to object property
  • 基于 C# 套接字的 HTTP

    我正在尝试通过 C 套接字发送 HTTP 请求并从服务器接收响应 而且我是这种语言的新手 我写了以下代码 IP解析正确 IPEndPoint RHost new IPEndPoint IP Port Socket socket new So
  • Windows命令行重定向下的c ++换行符

    我发现 Windows 命令行重定向会自动将 n 替换为 r n 有什么方法可以避免这种情况吗 因为在 stdout 或 stderr 重定向之后 如果将 r n 写入控制台 您将得到 r r n 而不是 r n 多谢 你可以尝试一个简单的
  • Visual Studio 中使用的 JavaScript 参考语法是什么?

    在 Visual Studio 2012 中 我创建了一个 Web 应用程序 然后在默认值中找到了以下行 references js项目附带的脚本
  • 为什么没有 boost::intrusive::map ?

    升压文档 http www boost org doc libs 1 55 0 doc html intrusive html http www boost org doc libs 1 55 0 doc html intrusive ht
  • OpenCV:加载带有 alpha 通道但 8 位深度的图像

    我对这些标志有点困惑cv imread takes 我的目标是加载具有 alpha 通道的图像 即CV 8UC4 同时我想始终以 8 位深度加载它们 首先我尝试使用以下内容 cv imread path cv IMREAD COLOR 这会
  • 如何设置文本区域滚动条的样式

    我在联系表单中有一个使用 css 样式的文本区域 它看起来很棒 直到我写的内容超出了该区域可以容纳的范围 当我这样做时 会出现一个滚动条 并且这个滚动条在我的深色样式中看起来很糟糕 它是黑底白字 文本 那么我该如何设计这个呢 我用谷歌搜索了
  • 在 Android .aar 库中重新打包 .jar-s

    源代码 Library https bitbucket org victorapoyan renamingpackagedependency 使用库的项目 https bitbucket org victorapoyan renamingp
  • Ember 升级中的 JQueryUI

    按照建议升级并关闭 Bower 后 有没有办法在不使用 Bower 的情况下将 JQueryUI 包含到 Ember 项目中 我的项目很大程度上依赖于 JQueryUI 对话框 ember v ember cli 3 3 0 node 8
  • 如何在 JavaScript 调试终端中运行 VSCode 任务?

    我希望 VSCode 运行此任务 label Start type shell command npm run start dependsOn Set Envs problemMatcher presentation group Main
  • 如何从 golang 中的 http 请求中读取标头?

    如果我收到类型的请求http Request 如何读取特定标头的值 在本例中 我想从请求标头中提取 jwt 令牌的值 您可以使用r Header Get https golang org pkg net http Header Get fu
  • 输入字段中的字符限制为字母和数字

    我希望尝试在我的网站上订阅的人输入昵称 并且该昵称应仅由字母和数字组成 根本没有特殊字符 我想要以下内容 abcdefghijklmnopqrstuvwxyz1234567890 only 我如何检查它是否只有这些 HTML5 解决方案将是
  • deparse(substitute()) 正常返回函数名称,但在 for 循环内调用时返回函数代码

    我对 R 在一个非常具体的情况下的行为感到有点惊讶 假设我定义了一个函数square返回其参数的平方 如下所示 square lt function x return x 2 我想在另一个函数中调用这个函数 并且我还想在这样做时显示它的名称
  • 为什么 TypeScript 编译器通过两次检查来编译其可选链接和空合并运算符?

    为什么 TypeScript 编译器编译它的可选的链接和空合并 https www typescriptlang org docs handbook release notes typescript 3 7 html运营商 and to x
  • 如何将静态库和共享库与 CMake 混合链接

    我有一个在 Linux 上构建的共享库 libtest so 它链接到几个共享库 现在我有一些第三方静态库链接到 libtest so 我知道可以通过直接调用 gcc 来实现 链接时可以混合使用静态库和共享库吗 https stackove