gpt4 book ai didi

meson-build - 将静态库链接到共享库或二进制文件

转载 作者:行者123 更新时间:2023-12-04 02:45:31 36 4
gpt4 key购买 nike

我有一个来自项目 A (我们称之为 liba.so )的静态库,我想在我的项目 B (我们称之为 libb.so )中编译一个共享库并将 liba.so 嵌入其中。

另外,我在那个项目 B 中有一个二进制文件,它也取决于 liba.so ,所以我想将它嵌入到二进制文件中。

那可能吗?如何?

最佳答案

当 A 是单独的代码库时

您所做的是构建和安装项目 A。然后在项目 B 的定义中创建对项目 A 的依赖。

看起来像这样:

a_dep = dependency('a', version : '>=1.2.8')    
lib_b = shared_library('proj_b', sources: 'prog_b.c', dependencies : a_dep)
dependency 中的 version 部分是可选的。

当 A 与 B 处于同一个介子项目时

当 A 和 B 在同一个介子项目中时,它有点丑陋。你必须在 A 中声明一个依赖 anchor 。

看起来像这样:
incdirs = include_directories('include')
lib_a = static_library('a', 'proj_a.c', include_directories : indirs)

liba_dependency = declare_dependency(
include_directories : incdirs,
link_with : lib_a,
sources : ['proj_a.c'])

然后项目B变成:
lib_b = shared_library('proj_b', sources: 'prog_b.c', dependencies : lib_a)

关于meson-build - 将静态库链接到共享库或二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34663124/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com