Hello guys,
I am totally new to C and Code::Blocks but glad to be here.
I want to add import libcurl in my project on Windows. Here is what I did:
I found this tutorial on net:
http://en.kioskea.net/faq/29303-install-a-library-under-codeblocks-for-mingwDownloaded this file for the latest version.
http://curl.haxx.se/gknw.net/7.40.0/dist-w32/curl-7.40.0-devel-mingw32.zipSaved in below folder as:
C:\libs\curl-7.40.0-devel-mingw32
Followed
Project >
Build Options >
Root >
Search Directories >
Compiler >
Add button and chosen below folder as "non-relative path":
C:\libs\curl-7.40.0-devel-mingw32\include
Followed
Project >
Build Options >
Root >
Linker Settings >
Link Libraries >
Add button and chosen below all
.a files as "non-relative path":
C:\libs\curl-7.40.0-devel-mingw32\lib\libcrypto.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libcrypto.dll.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurldll.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libidn.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libidn.dll.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\librtmp.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libssh2.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libssh2dll.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libssl.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libssl.dll.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libz.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libz.dll.a;
C:\libs\curl-7.40.0-devel-mingw32\lib\libzdll.a;
Tutorial also recommends to copy .dll files if it is dynamic but because I am not sure my project is dynamic or static, I did not copy anything.
I use below code as example:
#define CURL_STATICLIB
#include <stdio.h>
#include "curl/curl.h"
#include "curl/typecheck-gcc.h"
#include "curl/easy.h"
//#include <string>
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written;
written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main(void) {
CURL *curl;
FILE *fp;
char *url = "https://wordpress.org/plugins/about/readme.txt";
char outfilename[FILENAME_MAX] = "E:\\test.txt";
curl = curl_easy_init();
if (curl) {
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
By this configuration and code; when I build and run the project I get:
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(easy.o):(.text+0x16): undefined reference to `WSAStartup@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(easy.o):(.text+0x39): undefined reference to `WSACleanup@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(easy.o):(.text+0x235): undefined reference to `WSACleanup@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x2e): undefined reference to `WSASetLastError@4'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x25f): undefined reference to `select@20'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x270): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x378): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x398): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x3d0): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x3ed): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x42f): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x445): more undefined references to `__WSAFDIsSet@8' follow
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x7aa): undefined reference to `select@20'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x7bd): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x926): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x941): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(select.o):(.text+0x963): undefined reference to `__WSAFDIsSet@8'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(asyn-thread.o):(.text+0x185): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(sendf.o):(.text+0x147): undefined reference to `recv@16'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(sendf.o):(.text+0x161): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(sendf.o):(.text+0x86a): undefined reference to `recv@16'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(sendf.o):(.text+0x889): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(sendf.o):(.text+0x90e): undefined reference to `send@16'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(sendf.o):(.text+0x92d): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x74): undefined reference to `getsockopt@20'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xa9): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x10b): undefined reference to `ntohs@4'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x2b5): undefined reference to `getpeername@12'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x2c5): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x37a): undefined reference to `getsockname@12'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x3d9): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x49c): undefined reference to `getsockopt@20'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x4e7): undefined reference to `setsockopt@20'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x5f0): undefined reference to `recv@16'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x643): undefined reference to `closesocket@4'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x744): undefined reference to `socket@12'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x94a): undefined reference to `setsockopt@20'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x9fd): undefined reference to `WSAIoctl@36'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xa0d): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xc8c): undefined reference to `bind@12'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xcd5): undefined reference to `ntohs@4'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xd42): undefined reference to `htons@4'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xd9d): undefined reference to `setsockopt@20'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xdf8): undefined reference to `getsockname@12'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xe3d): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xebe): undefined reference to `connect@12'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xecd): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xf55): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0xfdb): undefined reference to `WSAGetLastError@0'
C:\libs\curl-7.40.0-devel-mingw32\lib\libcurl.a(connect.o):(.text+0x1367): undefined reference to `WSASetLastError@4'
Any recommendations about what I need to fix this please?
Cheers