- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 ubuntu 10.04 和 libboost1.40。
ls -l /usr/lib | grep boost_pro
-rw-r--r-- 1 root root 640800 2010-04-01 05:19 libboost_program_options.a
lrwxrwxrwx 1 root root 26 2011-11-03 22:40 libboost_program_options-mt.a -> libboost_program_options.a
lrwxrwxrwx 1 root root 34 2011-11-03 22:40 libboost_program_options-mt.so -> libboost_program_options.so.1.40.0
lrwxrwxrwx 1 root root 34 2011-11-03 22:40 libboost_program_options.so -> libboost_program_options.so.1.40.0
-rw-r--r-- 1 root root 289336 2010-04-01 05:19 libboost_program_options.so.1.40.0
这是main.cpp(只是为了测试)
#include <string>
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/program_options/options_description.hpp>
//---------------------------------------------------------------------
int main(int argc,char** argv)
{
boost::gregorian::date now(boost::gregorian::day_clock::local_day());
//is works fine
std::cout<<boost::gregorian::to_iso_string(now)<<std::endl;
boost::program_options::options_description a; //but here i get an error when the constructor have started
return 0;
}
g++ -o main -lboost_date_time -lboost_program_options main.cpp && ./main
/tmp/cc3RJHsG.o: In function `main':
main.cpp:(.text+0x81): undefined reference to `boost::program_options::options_description::options_description(unsigned int, unsigned int)'
collect2: ld returned 1 exit status
我愿意
find /usr/include/ -name "*description*"
/usr/include/boost/program_options/options_description.hpp
而且只有类(class)的原型(prototype)。有什么想法吗?
最佳答案
显然,有一个双参数构造函数的原型(prototype),它采用两个 unsigned int
,它们都具有默认值。因此,这成为默认构造函数,在创建 a
时使用。这是this constructor :
options_description(unsigned = m_default_line_length,
unsigned = m_default_line_length/2);
但是,这是在 Boost 1.42 和 does not exist 中添加的在您的版本中,1.40。
所以我认为您以某种方式设法用更新的版本覆盖了 Ubuntu 为您安装的 header ,但没有更新 /usr/lib
中的库。尝试卸载并重新安装软件包。
如果您需要比 1.40 更新的 Boost,请升级您的 Ubuntu,或者卸载所有与 Boost 相关的软件包并从 /usr/local
中的源代码重新安装。包管理器将远离 /usr/local
中的任何内容,因此这将确保此类麻烦不会再次发生。
关于c++ - boost::program_options 未定义引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000682/
我正在尝试解析从命令行输入的列表。 我的类是从向量派生的 编译器提示重载验证不明确。我知道为什么,但不知道如何解决这个问题。 请帮忙。 下面是一个生成错误的最小示例。如果将 ch_list 的类型更改
使用 boost::program_options,当它在命名空间内声明时,我无法获得自己的选项类型进行编译。但是在命名空间之外它编译并工作正常: #include using namespace
我目前正在尝试在我的模拟中实现 boost::program_options 库。在读取(许多)参数时,我想做这样的事情 namespace po = boost::program_options;
我目前正在尝试重做一些传递给我的代码。代码的原始点是读取配置文件,并在boost::program_options::variable_map中设置文件中的不同选项,然后读取该代码的其他所有部分,这些
我正在尝试使用 Boost::program_options 读取配置文件。配置文件如下所示: hier.arch.y.option_name = 0x5 another.hier.archy.set
#include #include #include #include void basic_approach(int argc, char const *argv[]) { try
我无法找出使用 boost::program_options 的链接错误。这是一个示例 C++ 代码: # sample_code.cpp #include int main() { boo
我正在尝试在配置文件的值中使用井号 ('#')。 我的用例是一个音乐程序,其中的值给出了吉他乐谱的调音。因此,在值中支持“#”是强制性的,并且不支持任何解决方法,这与可以使用“b”模拟的平面不同。 我
我正在尝试了解 program_options 自定义验证,以便将 python 代码转换为 c++ 代码。 无论如何 我在示例中读到我必须重载验证函数 我试图在 boost program_opti
我目前正在阅读 Boost.Program_options 教程。 这是他们介绍的一些代码: // Declare the supported options. po::options_descrip
海湾合作委员会 4.7.2/ boost 1.58.0 我正在尝试看起来像这样的代码,几乎完全取自文档中的示例: namespace po = boost::program_options; po::
我使用 ubuntu 10.04 和 libboost1.40。 ls -l /usr/lib | grep boost_pro -rw-r--r-- 1 root root 64080
boost::program_options 似乎支持某种级别的 custom validation但对我来说,验证是根据类型而不是每个参数编写的,这似乎很奇怪,我想知道我是否在这里遗漏了什么。 例如
构建我的项目时,Boost_LIBRARIES 不包含 program_options,即使它是必需的并且已找到。如果我手动添加它,它工作正常。我的 CMake 包含以下内容: find_packag
我对 boost::program_options 有疑问 我有课 namespace po = boost::program_options; class imageProcess{ private
program_options 是少数几个不只是头文件(因此需要单独编译)的 Boost 库之一。 我需要在未安装 Boost 的集群中运行我在 PC 上编译的程序。我没有安装 Boost 的管理权限
在 debian stretch 和 gcc 6.4.0 上,boost 1.66.0 boost::program_options 总是用空值解析命令行。代码如下: #include #inclu
我正在尝试从源代码构建第 3 方 C++ 库,它依赖于 Boost。在构建的最后一步,我得到了这样的错误: [ 90%] Linking CXX executable Shannon_RNASeq_C
我在使用 boost:program_options 时遇到问题 这个简单的程序,从 boosts 的文档中复制粘贴: #include int main( int argc, char** arg
一开始不解析参数,而是在程序已经运行了一段时间的某个时间解析从管道读取的输入字符串。 boost::program_options 可以这样做吗? 谢谢。编辑: 我必须在 python 中使用不同的参
我是一名优秀的程序员,十分优秀!