Obecnie próbuję przekroczyć kompilację libcurl w c dla Windows 32x na Ubuntu 64x 14.04. Po trochę badań Śledziłem kroki:Cross compiled C Windows libcurl nie jest poprawnie połączony z Ubuntu
1) Pobierz bibliotekę z https://curl.haxx.se/download.html
2) przejdź do folderu wydobytego libcurl i realizują:
./configure --host=i686-w64-mingw32 --build=i686-pc-linux-gnu --prefix=/usr/i686-w64-mingw32/ --enable-static --disable-shared
3) Wykonanie: należy
4) Wykonaj sudo aby zainstalować
Następnie dodaje te obejmują REGULACJI NTS:
#include <winsock2.h> // Needed for curl
#include <windows.h> // Windows API
#include <curl/curl.h>
int main(int argc, char** argv)
{
CURL *curl;
CURLcode response;
char url[] = "someurl.com";
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, url); //set url options
/* Perform the request, res will get the return code */
response = curl_easy_perform(curl);
if(response != CURLE_OK)
{
//Do something
}
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
Teraz próbowałem skompilować mój kod z następującymi argumentami:
i686-w64-mingw32-gcc main.c -o main.exe -L/usr/i686-w64-mingw32/lib -lcurl
Kompilator wrócił następujący kod błędu:
/tmp/ccebLf6U.o:main.c:(.text+0x336): Not defined reference to `_imp__curl_easy_init'
/tmp/ccebLf6U.o:main.c:(.text+0x365): Not defined reference to `_imp__curl_easy_setopt'
/tmp/ccebLf6U.o:main.c:(.text+0x372): Not defined reference to `_imp__curl_easy_perform'
/tmp/ccebLf6U.o:main.c:(.text+0x3f4): Not defined reference to `_imp__curl_easy_cleanup'
collect2: error: ld returned 1 exit status
Czy ktoś pomysł jak to naprawić ?
[EDIT]
Coś naprawdę interesujący natknąłem się na to, że jeśli zadzwonić Curl-config masz kilka opcji kompilatora.
Dlaczego oznaczyłeś [tag: linux] i [tag: ubuntu], jeśli dodajesz "windows.h'? ... – LPs
@LPs Przeczytaj, co napisałem w moim pierwszym zdaniu. Zrobiłem crosscompile na Ubuntu aka Linux, a mój problem leży w ścieżce crosscompile Linuksa. – Qubasa