使用boost时遇到问题:program_options
这个简单的程序,从boosts的文档中复制粘贴:
#include <boost/program_options.hpp>
int main( int argc, char** argv )
{
namespace po = boost::program_options;
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message")
("compression", po::value<int>(), "set compression level")
;
return 0;
}
因缓冲区溢出而失败。
我已经激活了“缓冲区安全开关”,当我运行它时,当我跨过行desc.add_options()...
时,我得到一个“未知异常(0xc0000409)”
我使用Visual Studio 2005并提升1.43.0。
顺便说一下,如果我停用开关,它会运行,但我觉得这样做不舒服......除非可以在本地停用它。
那么你有解决这个问题的方法吗?
修改 我发现了这个问题 我正在链接libboost_program_options-vc80-mt.lib,这不是一个好的库。
答案 0 :(得分:1)
它可以在2010年运行。即将在2005年尝试,但意识到我没有在该环境中编译1.43。
答案 1 :(得分:0)
我发现我链接到libboost_program_options-vc80-mt.lib的问题,因为我将运行时库更改为多线程DLL,所以这不是一个好的库。