3

私は c/c++ が初めてです....最近、libCurl を使用してプログラムをコンパイルしようとしています。しかし、次のエラーが表示されます。

Error:  Error: Unresolved external '_curl_easy_init' referenced from D:\BC5\BIN\HTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_setopt' referenced from D:\BC5\BIN\HTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_perform' referenced from D:\BC5\BIN\HTTP-POST.OBJ
Error:  Error: Unresolved external '_curl_easy_cleanup' referenced from D:\BC5\BIN\HTTP-POST.OBJ

これらのエラーについてネットで検索したところ、これがリンカ エラーであることがわかりました。その問題に関する多くのチュートリアルを見つけました。しかし、私はそれを理解することはできません。

私は libcurl.dll とたくさんのヘッダー ファイルを持っていることに注意してください。ヘッダー ファイルを D:\BC5\INCLUDE にコピーしました。

4

2 に答える 2

2

DLL用のインポートライブラリが必要です。borlandが提供するimplibユーティリティを使用して、DLLから作成できます。結果の.libをプロジェクトに含めると、リンカーエラーがなくなるはずです。実行時に文句を言い始めた場合は、DLLが実行可能ファイルと同じフォルダにあることを確認してください。

于 2011-07-11T12:37:15.710 に答える
0

これらのエラーを適切に解決するには libcurl ライブラリをインポートする必要があるという Eelke の意見は正しいです。上記のコメントに基づいて、既に次のことを行っていると仮定します。

  • IDE に libcurl テスト プロジェクト セットアップの基本的なレイアウトがあります。
  • ビルド時に libcurl を適切に配置できるように、必要な include および lib ディレクトリを追加しました。
  • リンカーで使用する libcurl.lib インポート ファイルを適切に作成しました。

目的のライブラリにリンクするには、次の 2 つの方法があります。

  1. ツール チェーン固有の#pragmaディレクティブを使用します。たとえば、ソース ファイルの1 つの上部近くに次を追加します。

     // eg. main.cpp
     #include <stdio.h>
     #include <curl/curl.h>
    
     #pragma comment(lib, "libcurl.lib")
    
     // ...
    

    また

  2. libcurl インポート ライブラリをプロジェクトに追加します。これを行うには、プロジェクト名を右クリック->ノードを追加します。[プロジェクト リストに追加] ウィンドウで、ファイル拡張子フィルターを .lib を探すように変更します。デフォルトでは、C++ sourceで始まります。以前にインポートした libcurl.lib を見つけて、[開く] をクリックします。これにより、インポート ライブラリが依存関係としてプロジェクトに追加されます。

プロジェクトの再構築を実行すると (プロジェクトを右クリック- >ノードのビルド)、動作するはずです。

于 2011-07-12T18:41:21.063 に答える