1

C++ の Web ページからデータを読み取る同じコードを見つけました。それはそのようなものでした:

#include <iostream>
#include <string>
#include <C:\curl\curl.h>
// Right path, I am sure.

static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main(void)
{
    CURL *curl;
    CURLcode res;
    std::string readBuffer;

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);

        std::cout << readBuffer << std::endl;
    }
    return 0;
}

しかし、期待どおりには機能しません。エラーメッセージは次のとおりです。

1>------ Build started: Project: deneme, Configuration: Debug Win32 ------
1>  deneme.cpp
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function _main
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function _main
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function _main
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function _main
1>C:\Users\nazif\Documents\Visual Studio 2010\Projects\deneme\Debug\deneme.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

どうすればこれを修正できますか?

基本的に、C++ コードで curl を使用して特定の Web ページのコンテンツを取得したいと考えています。

4

2 に答える 2

2

関連する関数プロトタイプなどが含まれている#include <C:\curl\curl.h>だけです。プロジェクト設定を更新して、リンカーに適切なcurlライブラリにリンクするように指示することもできます。

Visual Studioを使用しているため、プロジェクトを右クリックしてプロパティを選択します。次に、構成プロパティ/リンカーに移動します。次に、[リンカー]-> [入力]に移動し、フィールドにlibファイルの名前(おそらくはにあります)を入力しcurl.libます。C:\curl\Additional Dependencies

于 2013-01-04T14:09:06.770 に答える
0

次の指示に従ってください

MSVC6IDE


最小限の VC++ 6.0 参照ワークスペース (vc6curl.dsw) がソース配布アーカイブで利用可能であり、含まれている 2 つのプロジェクト、libcurl ライブラリと curl ツールを適切に構築できます。

1) MSVC6 の IDE で vs/vc6/vc6curl.dsw ワークスペースを開きます。

2) トップメニューから「ビルド」を選択します。

3) ドロップダウン メニューから [バッチ ビルド] を選択します。

4) 8 つのプロジェクト構成が「チェック」されていることを確認します。

5) [ビルド] ボタンをクリックします。

6) 8 つのプロジェクト構成が構築されたら、完了です。

動的および静的な libcurl ライブラリはデバッグおよびリリース フレーバーで構築されており、それぞれ独自のサブディレクトリ、dll-debug、dll-release、lib-debug、および lib-release に配置できます。これらはすべて「vs/vc6/」の下にあります。 lib' サブディレクトリ。

同様に、4 つの curl 実行可能ファイルが作成され、それぞれがそれぞれのライブラリを使用します。結果の curl 実行可能ファイルは、「vs/vc6/src」サブディレクトリの下の独自のサブディレクトリ、dll-debug、dll-release、lib-debug、および lib-release にあります。

これらの参照 VC++ 6.0 構成は、動的 CRT を使用して生成されます。

意図的に、これらの参照 VC++ 6.0 プロジェクトと構成では、OpenSSL や Zlib などのサード パーティ ライブラリを使用しないため、追加要件なしですべての新規ユーザーが適切にコンパイルおよび構成できるようになっています。

もっと「関与する」ものが必要な場合は、自分で使用するためにそれらを調整するか、上記の「コマンドラインからの MSVC」で説明されているメイクファイルの世界を探索してください。

ビルドが完了すると、フォルダーの 1 つに .lib ファイルが作成されます。

于 2013-04-04T15:51:19.197 に答える