gpt4 book ai didi

linux - 链接到 Boost 时如何知道何时使用 .a 或 .so?

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

我想为我正在从事的项目试用 Boost::Serialization 库。我也在努力适应 Linux 编程。我在默认位置设置了 boost。我尝试编译他们提供的测试文件 here使用他们提供的命令行参数,它工作正常。在此示例中,他们使用 .a 文件。

然后我转到序列化页面并尝试运行 serialization demos 之一.我运行了基本相同的命令,除了我换出了文件名并链接到 libboost_serialization.a 而不是 libboost_regex.a,但我遇到了一堆错误。在尝试了不同的选项并仔细检查目录后,我终于通过将 .a 替换为 .so 文件来让它工作。

仅供引用,最终对我有用的是:

g++ /usr/local/lib/libboost_serialization.so sertest.cpp -o sertest 

为什么我在一个示例中链接到 .a 文件,而在另一个示例中我必须链接到 .so?

最佳答案

因为静态链接时,指定库和目标文件的顺序很重要。具体来说,必须在使用其中符号的目标文件之后提及库。

关于linux - 链接到 Boost 时如何知道何时使用 .a 或 .so?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1562172/

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