更新: コンパイルする方法が見つかりました。以下を参照してください。
こんにちは、cygwin でブースト プログラムをコンパイルする際に問題が発生しています。デフォルトのブーストおよび g++ パッケージを cygwin プロジェクトの setup.exe からインストールしました。
私の Linux システムでは、以下を使用してプログラム reg.cpp をコンパイルできます。
g++ -I/usr/include/boost -lboost_regex -o reg reg.cpp
cygwin では、これを少し編集する必要があります。
g++ -I/usr/include/boost-1_33_1 -lboost_regex-gcc-mt -o reg reg.cpp
問題は、cygwin バージョンでは、リンカが 100 万の未定義の参照エラーを引き起こすことです。ブースト テスト フレームワーク ライブラリを使用しようとしても、同じことが起こります。
リンカは boost_regex-gcc-mt を見つけていますが、インクルード ファイルと一致していないようです。最初のリンカ エラーは次のとおりです。
undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'
コンパイル方法
ここで解決策を見つけましたコンパイルするには、次のことを行いました。
g++ -I/usr/include/boost-1_33_1 reg.cpp -o reg -lboost_regex-gcc-mt
投稿によると、それはリンカーの順序と関係があります。これが cygwin では重要であるが、最新の Linux では重要ではない理由を誰かが知っていますか?