1

boost:program_optionsの使用に問題があります

この単純なプログラムは、ブーストのドキュメントからコピーして貼り付けたものです。

#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;
}

バッファオーバーフローで失敗します。

「バッファセキュリティスイッチ」を有効にしましたが、実行すると「不明な例外(0xc0000409)」が発生します。desc.add_options()...

Visual Studio 2005を使用して、1.43.0をブーストします。

ちなみに、スイッチを非アクティブにすると実行されますが、ローカルで非アクティブにできない限り、そうすることに抵抗があります。

では、この問題の解決策はありますか?

編集 私はlibboost_program_options-vc80-mt.libに対してリンクしていた問題を見つけましたが、これは良いライブラリではありませんでした。

4

2 に答える 2

1

2010年に動作します。2005年に試してみようとしましたが、その環境で1.43がコンパイルされていないことに気付きました。

于 2010-06-15T16:06:02.440 に答える
0

ランタイムライブラリをマルチスレッドDLLに変更したため、libboost_program_options-vc80-mt.libに対してリンクしていた問題が見つかりました。これは、適切なライブラリではありませんでした。

于 2010-06-15T18:18:41.887 に答える