依赖于另一个静态库(Linux)未定义的静态库

问题描述 投票:0回答:1

我想将一个静态库合并(包含)到另一个静态库。 当我在 Windows 上尝试时,它有效。 在 Linux 上,该对象不包含在新创建的库中。查看创建的库内部,您会发现函数名称,但未定义为“U”。
需要什么样的标志来强制将对象包含在新创建的库中?

nm -g libPPCL.a  | grep  "pathLib"

U _Z12CheckpathLibRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
0000000000000000 T _Z15CallpathLibFuncRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

函数是 CallpathLibFunc ,库的名称为 pathLib ,应该位于 PPCL.a 中

将第三方库加入到我自己的库中

注:

我使用 premake5 生成 makefile 和 VS2022 解决方案。

linux
1个回答
0
投票

我找到了解决方案。 查看我描述解决方案的模板项目。

https://github.com/MariwanJ/TemplatePreemakeStaticLIB 这个想法是提取 .o 文件并将它们再次添加到 .lib 中。这必须在头库的 lua 文件内完成(您想将供应商库引入其中)。 如果需要,请检查解决方案并进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.