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 する方法をユーザーに伝えるための標準的な方法です。