0

program_optionsシンプルな Windows コンソール ライブラリで動作するブースト ライブラリを取得しようとしています。ライブラリにリンクしまし C:\Program Files\boost\boost_1_40\lib\libboost_program_options-vc90-s-1_40.lib たヘッダーファイルを含めました

#include <boost/program_options.hpp>
#include <boost/program_options/config.hpp>
#include <boost/program_options/option.hpp>
#include <boost/program_options/detail/cmdline.hpp>
#include <boost/program_options/detail/parsers.hpp >

定義済み_WIN32(ただし、必須ではないと思います。)

そして、私はまだ取得し続けます

Error   1   error C3861: 'split_winmain': identifier not found

とてもシンプルなはずですが、うまくいきません。ここで何をする必要があるか誰か教えてください。ジョセフ・シャナハン

4

1 に答える 1

1

その関数はboost::program_options名前空間で宣言されています。その名前だけを使用するだけでは、コンパイラは何について話しているのかわかりません。いくつかのオプションがあります:

  • 呼び出すときは完全修飾名を使用します。

    boost::program_options::split_winmain(...);
    
  • 意味する関数をコンパイラに伝えます。

    using boost::program_options::split_winmain;
    split_winmain(...);
    
  • 名前空間全体を現在のスコープに取り込みます。

    using namespace boost::program_options;
    split_winmain(...);
    
  • 名前空間エイリアスを作成します。

    namespace po = boost::program_options;
    po::split_winmain(...);
    

私は最後の方が好きです。

_WIN32マクロを定義しないでください。コンパイラは、適切なときにそれを行います。

于 2009-11-11T06:36:38.863 に答える