我在linux服务器上的交叉编译器中连接curl时遇到问题 . 我收到此错误消息:

z:/ usr / mingw64 / bin /../ lib / gcc / x86_64-w64-mingw32 / 4.8.1 /../../../../ x86_64-w64-mingw32 / lib /../ lib / libcurl.a(easy.o):( . text 0xfe):对libssh2_init z的未定义引用:/ usr / mingw64 / bin /../ lib / gcc / x86_64-w64-mingw32 / 4.8.1 /../ ../../../x86_64-w64-mingw32/lib/../lib/libcurl.a(easy.o):(.text 0x2bd):对libssh2_exit z的未定义引用:/ usr / mingw64 / bin / ../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe:z:/ usr / mingw64 / bin / ../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/lib/../lib/libcurl.a(easy.o) :.data中的错误重定位地址0x0

我这样编译: wine64 /usr/mingw64/bin/x86_64-w64-mingw32-g++.exe main.cpp -o test -lcurl -L"/usr/mingw64/x86_64-w64-mingw32/include/libcurl.a" -DCURL_STATICLIB -lws2_32 我用来测试的代码就是这个:

#include <iostream>
#include <curl.h>
using namespace std;

size_t writeCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
    ((string*)userp)->append((char*)contents, size *nmemb);
    return size *nmemb;
}

int main(int argc, char** argv)
{
CURL *curl = curl_easy_init();
string got;
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.fr");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &got);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
cout << "Source code of https://www.google.fr:" << endl << endl << got << endl;
while(1);
return 0;
}

问题是我有libssh2的问题,但我不使用它,不需要它,当我在Windows上编译时,我没有这个问题...