gpt4 book ai didi

c++ - boost::program_options 的链接错误

转载 作者:行者123 更新时间:2023-11-30 05:45:29 25 4
gpt4 key购买 nike

我无法找出使用 boost::program_options 的链接错误。这是一个示例 C++ 代码:

# sample_code.cpp
#include <boost/program_options.hpp>
int main()
{
boost::program_options::options_description description("Test");
}

我还在 Yosemite 10.10.2 上使用 MacPorts 安装了 boost 1.57.0。这是相关的库:

/opt/local/lib/libboost_program_options-mt.a

让我们编译并链接这段代码:

alias g++='/opt/local/bin/g++-mp-5 -std=gnu++14 -I/opt/local/include -L/opt/local/lib'

g++ sample_code.cpp -lboost_program_options-mt

链接失败:

Undefined symbols for architecture x86_64:
"boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)"
ld: symbol(s) not found for architecture x86_64

有什么想法吗?

最佳答案

解决方案很简单:您必须使用相同版本的编译器(或者至少它们应该兼容)来编译 boost 和您的程序。当我的 boost 是用 GCC 4.8.3 编译的,而我的代码是用 GCC 5.3.0 编译的时,我遇到了链接错误。使用 GCC 5.3.0 构建 boost 后,链接问题消失了。

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

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