2011-01-05 15 views
0

Dev C++のBoostライブラリ、特に正規表現のライブラリを使用して問題が発生しています。Dev C++とBoost :: regexのリンケージの問題

ブースト:: re_detail :: get_mem_block()」 `に

[リンカエラー]未定義の参照:

 
#include string 
#include iostream 

using namespace boost; 

regex expression("([0-9]+)(\\-| |$)(.*)"); 

// process_ftp: 
// on success returns the ftp response code, and fills 
// msg with the ftp response message. 
int process_ftp(const char* response, std::string* msg) 
{ 
    cmatch what; 
    if(regex_match(response, what, expression)) 
    { 
     // what[0] contains the whole string 
     // what[1] contains the response code 
     // what[2] contains the separator character 
     // what[3] contains the text message. 
     if(msg) 
     msg->assign(what[3].first, what[3].second); 
     return std::atoi(what[1].first); 
    } 
    // failure did not match 
    if(msg) 
     msg->erase(); 
    return -1; 
} 

それは私を投げエラーは次のとおりです。私は、彼らの例のコードを使用して試してみました

他にも多くのリンカーエラーがあります。私はそれを修正する方法を見つけることができないようだ、私は他のコンパイラに出くわしたこの問題を検索しても。私は既に他のヘッダーファイル用のインクルードパスをプロジェクトに追加しました。

どうすれば回避できますか? DevC++のコンパイル方法を変更する必要がある場合は、[ファイル]タブまたは[パラメータ]タブから変更する必要がありますか? また、あまりにも別のことではなく、誰かが私にコンパイラについての良いガイドやページを勧めてくれますか? (私はC++のページで多くを見つけることができなかったので)。

ありがとうございました。

+0

(これはあなたの問題とは何の関係もありませんが、...)のDev-C++は、石器時代のコンパイラを使用します(GCC 3.4.5アイム場合間違いではない)、石器時代のMinGW版と一緒に。 IDE自体も石器時代ですから、チャンスをつかんだときにそれらをアップグレードすると、あなたはそれを後悔しません)。 – rubenvb

+0

私は今MinGWの最新バージョンをダウンロードしました。ありがとう – Filgera

答えて

0

私が知っている限り、あなたはboost regexライブラリを構築し、それにリンクするべきです。私はあなたが正規表現のライブラリとリンクされていないと仮定します。

あなたはここにライブラリを構築する手順を見つけることができます:http://www.boost.org/doc/libs/1_45_0/libs/regex/doc/html/boost_regex/install.html

+0

ありがとうございました、そのページに続いて、G ++とmingw32-makeのMinGWの最新バージョンをインストールしました。これはおそらくばかげた質問ですが、そのウェブのようなG ++メイクファイルに続いて "mingw32-make -fgcc.mak"と入力すると "構文が正しくない"ため "エラー1"になります。おそらく間違ったmakeファイルを使用しているでしょうか? – Filgera

+0

@Filgeraよく分かりませんが、間違ったmake tool(mingw32-make)を使用すると思われます。おそらくgcc.makには、mingw32-makeがサポートしていない実際の構文が含まれています。あなたは "make -fgcc.mak"を試みるか、bjamを使ってビルドを行うことができます。手順については、http://www.boost.org/doc/libs/1_45_0/more/getting_started/unix-variants.htmlを参照してください。 – ds27680