2017-07-09 24 views
0

私はcurlライブラリをインストールして設定し、それをCodeBlocks経由でMinGWにリンクしました。すべてがうまく行きましたが、私は、コードを建てたとき、私はエラーを取得する:(C++)CURL_STATICLIB:そのようなファイルやディレクトリはありません

CURL_STATICLIB  No such file or directory 

はここでエラーのスクリーンショットです: CURL_STATICLIB Error

私はの#defineでCURL_STATICLIB定義しました: CURL_STATICLIB in #defines

-------------- Build: Debug in CurlTest (compiler: GNU GCC Compiler)--------------- 

mingw32-g++.exe -Wall -fexceptions -g CURL_STATICLIB -DCURL_STATICLIB -std=c++11 -lcurl -DCURL_STATICLIB -IC:\libs\curl\include -c C:\Users\ondre\OneDrive\Documents\Projects++\CurlTest\main.cpp -o obj\Debug\main.o 
mingw32-g++.exe: error: CURL_STATICLIB: No such file or directory 
Process terminated with status 1 (0 minute(s), 0 second(s)) 
1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) 

私のコンパイラ情報:もここでビルドログです

MinGW gcc (GCC) 5.3.0 
+0

を追加します。失敗したビルドのビルドログは関連しています。 IDEの**ビルドログ**タブ(**ビルドメッセージ**タブではありません)にあります。コードをビルドログに置き換えるか、ビルドログを追加します。 –

+0

ありがとう、私はそれを交換するつもりです。 – FreeDay

+0

CodeBlocksはコンパイラではありません。これはIDEです。コードがどのようにコンパイルされるかは決して影響を与えません。実際のコンパイラ情報を投稿してください(エラーからmingw32 g ++と思われる)。 – tambre

答えて

1

あなたの失敗からのコマンドをコンパイルします。私たちはだけでなく、プリプロセッサ 定義(-DCURL_STATICLIB)にCURL_STATICLIBを追加していることがわかります

mingw32-g++.exe -Wall -fexceptions -g CURL_STATICLIB -DCURL_STATICLIB -std=c++11 \ 
-lcurl -DCURL_STATICLIB -IC:\libs\curl\include \ 
-c C:\Users\ondre\OneDrive\Documents\Projects++\CurlTest\main.cpp-o obj\Debug\main.o 

、あなたはまた、実際には他のあなたの にそれを追加しましたコンパイラオプション-g CURL_STATICLIB)。そして、もちろん の文字列CURL_STATICLIBはg ++オプションではなく、で始まる で始まりません.g ++はコンパイルのために入力ファイルの名前として解釈します。これはエラーを説明しています。

さらに、コンパイルオプション に-lcurlを追加しました。あなたのプログラムにlibcurlをリンクしたいことを示しています。これはコンパイルオプションの ではなく、リンケージオプションです。コンパイラはそれを無視します。 また、リンカーオプションに追加していない場合は、 プログラムは、コンパイルに成功するとリンクに失敗します。この問題を解決するには

、あなたのコンパイラオプションから-lcurlを削除し、あなたのコードは、このエラーに関連しない に他のリンカオプション

+0

ありがとう!それは私の問題を解決しました。正しい答えとしてマーク:) – FreeDay

関連する問題