gpt4 book ai didi

linux - 它会链接到哪个库 - 静态或共享对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:58 24 4
gpt4 key购买 nike

我有一个基于 C++ 的项目(许多源文件)通过 makefile 使用 gnu make 编译。我有一个链接库的应用程序,比如 mylib。现在 mylib 归其他开发人员所有。我在生成库二进制文件的路径中看到 2 个文件,即 libmylib.so(共享对象)和libmylib.a(静态库归档文件)

我的应用程序 makefile 有以下链接器选项来链接库 mylib

LDFLAGS+=-l:mylib ...

问题是我的应用程序可执行文件中链接的库 mylib 的版本

请问是共享库libmylib.so还是静态版libmylib.a?

如何决定,是否有任何其他 makefile 选项来管理它?

最佳答案

默认情况下,在非嵌入式 Linux 上,您将获得动态链接。如果你想改变它,你可以在 LDFLAGS 中指定它;

LDFLAGS+= -Wl,--Bstatic -lmylib -Wl,--Bdynamic

(可能需要引号)这将仅针对此库切换为静态,然后返回默认动态。

关于linux - 它会链接到哪个库 - 静态或共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14731219/

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