0

CentOS6 (Linux) を使用しており、C/C++ のみを介して Web サーバーに接続しようとしています。

私の調査:
ウェブサーバーと通信できるcurlライブラリを見つけたので、 http:
//curl.haxx.se/download.htmlにubuntu-7.22.0バージョンをインストールしました

「curl/curl.h」をインクルードできましたが、それらのメソッドをコンパイルできませんでした。

問題:

私たちのプラットフォーム用の正しいバージョンの curl と、コンパイル用に -lcurl を追加する方法を教えてください。(例: g++ -lcurl api api.c)

私にとってより重要なので、詳細な説明をお願いします。前もって感謝します。

-ヴァサント

4

3 に答える 3

8

問題は に固有のものではありませんcurl: への引数の順序gccは重要です: コンパイラ オプション、ソース ファイル、オブジェクト ファイル、ライブラリ (高レベルから低レベルへ)。でコンパイルしてみてください

 gcc -Wall -g prog.c -lcurl -o binprog

または (C++ プログラムの場合)

 g++ -Wall -g otherprog.cc -lcurl -o binotherprog

もちろん、開発パッケージ eg libcurl-devor libcurl3-gnutls-devor libcurl4-gnutls-dev(Ubuntu にパッケージ化されています) が必要です。CentOS ディストリビューションでは、それが呼び出されるlibcurl-develか、または他の何かである可能性があります。

http://curl.haxx.se/download.htmllibcurlからではなく、ディストリビューションによって提供される開発パッケージ (用) をインストールする必要があります。

make実際には、GNU (ビルダー) とgdb(デバッガー)の使い方も学ぶ必要があります。

于 2013-07-05T05:22:14.347 に答える
1

ありgcc(およびバリアント)

ライブラリは、リンク コマンドの最後にある必要があります。

これは、リンカがコマンド ライン パラメータを左から右の順序で処理するためです。

ライブラリがオブジェクト ファイルの前にある場合、ライブラリが処理されるときに、解決される未解決の外部参照はありません。

オブジェクト ファイルの処理後、未解決の外部参照が存在するため、ライブラリは最後にある必要があります。

于 2016-03-02T16:01:22.620 に答える
0

これがあなたが進むべき方法です

このリンクから curl をインストールします http://curl.haxx.se/download.html すでにインストールしている場合は、このページに進みます

次に、このチュートリアルに従ってください http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

于 2013-07-05T05:21:20.273 に答える