0

現在、Windows 7 x64 で C++ プログラムをコンパイルする際に問題が発生しています。

私がしようとするすべての方法でコンパイルに失敗します:

undefined reference to `curl_easy_init'
undefined reference to `curl_easy_setopt'
undefined reference to `curl_easy_setopt'
undefined reference to `curl_easy_perform'
undefined reference to `curl_easy_strerror'
undefined reference to `curl_easy_cleanup'

コード自体:

#include <curl/curl.h>

int main(int argc, char** argv)
{
CURL *curl;
CURLcode res;

curl = curl_easy_init();

if(curl)
{
    curl_easy_setopt(curl, CURLOPT_URL, "http://steamcommunity.com");
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

    res = curl_easy_perform(curl);

    if(res != CURLE_OK)
    {
        fprintf(stderr, "curl_easy_perform() failed %s\n", curl_easy_strerror(res));
    }

    curl_easy_cleanup(curl);
}
else
{
}
return 0;
}

私はコンパイルしています:

g++ -DCURL_STATICLIB -g -o curlprogram curlprogram.cpp -LJ:\Projektpath -lcurl

-L で指定されたパスに libcurl.a を追加し、libcurl.dll を C:\Windows\System32 に配置しました。

4

2 に答える 2

1

*.a は Windows バイナリには使用されません。libcurl_imp.lib を -L パスに配置し、 -lcurl_imp を使用します。-DCURL_STATICLIB なしで共有ライブラリをリンクしてみてください

于 2013-04-22T08:34:23.083 に答える
0

まず、[プロパティ] > [構成プロパティ] > [VC++ ディレクトリ] > [インクルード ディレクトリ] に移動します。ここで、解凍した Libcurl ファイルの include ディレクトリ (C:\ … \libcurl-7.19.3-win32-ssl-msvc\include\curl) にある curl ディレクトリを追加します。

[VC++ ディレクトリ] > [ライブラリ ディレクトリ] に移動します。curllib_static.lib、curllib.dll、および curllib.lib を含む Debug ディレクトリを追加します (C:\Users\Édouard\Documents\Visual Studio 2010\LibCurl\lib\Debug)。

引き続き [構成プロパティ] で、[リンカー] > [入力] > [追加の依存関係] に移動します。ここで、curllib.lib ファイル (C:\ … \lib\Debug\curllib.lib) を追加する必要があります。libファイルの名前まで入力します。

次のステップでは、プロジェクトの Debug ディレクトリに curllib.dll、libeay32.dll、openldap.dll、および ssleay32.dll を追加します。これらはすべて、Libcurl のルート ディレクトリにあります。

于 2013-04-22T12:42:51.767 に答える