gpt4 book ai didi

c++ - 在同一程序中使用 Linux C++ 共享库和静态库

转载 作者:太空狗 更新时间:2023-10-29 23:53:42 25 4
gpt4 key购买 nike

如何在同一 Linux 程序中同时使用 C++ 共享库和静态库?

当使用 g++ 进行管理时,我尝试在我不想静态链接的库前后安排 -static 命令,但没有结果。 ldg++ 提示共享库的 .a 文件在哪里(找不到 -lwhatever 错误)。

编辑:问题不是 cannot find -lwhatever 错误,因为它只是因为没有指定库的静态版本而发生。我要做的是指定哪些库是静态链接的,哪些是动态链接的。

最佳答案

假设一个静态的 libfoo.a 和一个动态的 libbar.so 你可以使用

g++ -o prog main.o other.o -Wl,-Bstatic -lfoo -Wl,-Bdynamic -lbar

您应该避免从动态库中调用静态库中的函数;这会很难看。

提示

g++-Wl 选项用于将参数传递给g++ 调用的ld 链接器。

您可能想使用 g++ -v 来了解 g++ 是如何调用 ld 的,您也可以使用 g++ -v -Wl,--verbose 也要求 ld 详细。

关于c++ - 在同一程序中使用 Linux C++ 共享库和静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9541609/

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