gpt4 book ai didi

c++ - 静态库链接失败,共享库链接成功

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:54 24 4
gpt4 key购买 nike

我可以针对共享库构建我的应用程序,但是当我将它链接到同一个库的静态版本时,我遇到了未解析的符号错误:

我可以这样构建我的应用程序:

g++ -lutils application.cpp -o application.exe

上述命令链接到一个 utils 库的共享版本。

我正在尝试像这样链接库的静态版本:

g++ -l:utils.a application.cpp -o application.exe

两次我都在用

export LD_LIBRARY_PATH=path/to/utils:$LD_LIBRARY_PATH

通知 g++ utils.a 放在哪里。

ld 报告的未解析符号存在于 nm 的输出中:

nm --defined-only path/to/utils.a

并标有“T”(表示它来自代码部分)。

我正在尝试找出问题的原因。

使用 LD_LIBRARY_PATH 指定在哪里搜索 utils.a 是否正确?

验证静态库定义(解析)符号的确切命令是什么?是命令

nm --defined-only path/to/utils.a

够了还是我应该使用任何其他选项,例如

nm --defined-only --demangle path/to/utils.a

例如?

最佳答案

对于编译器来说,只需选项 -static 就足够了。如果只有一个库必须是静态的,那么 -static- 和库名称是短名称而不是文件名。

关于c++ - 静态库链接失败,共享库链接成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53958956/

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