GNU/Linux >> Linux の 問題 >  >> Linux

libcurl を Linux の C++ プログラムにリンクするにはどうすればよいですか?

curl-config --libs を使用してみることができます .


ヘッダー ファイルのインクルードは問題ありません。あなたの問題はリンク段階で発生しています。 libcurl にリンクするには、-lcurl を追加する必要があります 標準ディレクトリにインストールされていることを前提としたコマンド ライン オプション:

g++ -o sms ./src/sms.o -lcurl

標準ディレクトリにインストールされていない場合は、 -L/path/to/libcurl も追加する必要があります 、例えばのようなもの:

# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl

-lcurl にも注意してください。 オプションは後に表示する必要があります リンクするオブジェクト ファイルのリスト。そうしないと、適切にリンクされません。


ecplise CDT を使用している場合は、次の手順を実行する必要があります。最初に端末に入る

curl-config --libs

私のマシンでは、結果は

-L/usr/lib/i386-linux-gnu -lcurl

次に、このスクリーンショットに従って実行すると、コンパイルできるようになります。ところで、コードにヘッダー ファイルを追加することを忘れないでください

ライブラリ フォルダ パスを -L なしで入力し、ライブラリ名を -l なしで入力します。これらはリンカーによって自動的に追加されるためです。


別の回答 (最初の回答は優れています)。 "pkg-config --libs libcurl" によって返される出力をコンパイラへの引数として使用することを検討してください。

たとえば、

<ブロック引用>

CPPFLAGS=`pkg-config --libs libcurl`

g++ $CPPFLAGS myfile.o

Pkg-config は、オープン ソース ライブラリがそれらに対してリンクする方法やファイルを #include する方法をユーザーに伝えるための標準的な方法です。


Linux
  1. Linuxでハードリンクとシンボリックリンクを作成する方法

  2. Linuxで実行中のプロセスを再起動(またはリセット)する方法は?

  3. 別の C++ プログラム内で C++ プログラムを実行する方法は?

  1. Linux .dts デバイス ツリー ファイルをプログラムする方法は?

  2. Linux CプログラムでpthreadのスレッドIDを取得するには?

  3. Linuxでプログラムがスタックしている場所を知る方法は?

  1. Linuxでプロセスを強制終了する方法またはプログラムを停止する方法

  2. 内部からC++ Linuxプログラムのフルパスを見つける方法は?

  3. AVR - Linux で AVR チップをプログラムする方法