gpt4 book ai didi

c++ - Boost 链接错误 - 单个 undefined reference

转载 作者:太空宇宙 更新时间:2023-11-04 13:25:44 25 4
gpt4 key购买 nike

我在使用 Boost(版本 1.58)时遇到了一个奇怪的链接问题。我在 Ubuntu 15.10 上使用 g++ 4.8 进行构建。

我收到以下错误:

undefined reference to 'boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)' collect2: error: ld returned 1 exit status

奇怪的是,所有来自 lboost_program_options 的符号都被找到了; options_description 是唯一 undefined reference 。如果我注释掉 options_description 的使用但保留 positional_options_description(我也在使用)的使用,那么整个程序可以完美地编译和链接。我正在与 -lboost_program_options 链接,如果我删除它,那么会按预期缺少 8 个 boost::options_description 符号。

很长一段时间以来,链接工作正常。没有任何构建系统更改,我知道它突然崩溃了。唯一的系统级变化是升级到 Ubuntu 15.10,我认为这不会影响任何事情。

任何想法或建议表示赞赏。

更新:经过大量摆弄后,我再次使它正常工作,尽管我不确定是什么原因造成的。不过,我仍然对可能导致此类行为的任何答案感兴趣。

最佳答案

检查 ABI 是否兼容(您使用的编译器版本和标志与编译 boost 库时使用的相同)。

在 Ubuntu 上,这意味着使用带有 libstdc++ 的标准 GCC。

如果不能,请使用您喜欢的标志编译您自己的 Boost System 和 Boost Program Options 二进制文件。

类似的事情会阻止代码示例链接到 http://coliru.stacked-crooked.com如果您的编译器与在那里编译 boost 时使用的编译器不同。

关于c++ - Boost 链接错误 - 单个 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33455628/

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