lekarz Temat założony przez niniejszego użytkownika |
Problem z „instalacją” cURL-a pod Code::Blocks [Linking stage skipped (build target has no object files to link)] » 2014-11-22 19:11:05 Robię co następuje:
1. Wchodzę na stronkę: http://curl.haxx.se/download.html przechodzę do sekcji „Win64 - MinGW64 „ aby pobrać bibloteke: http://curl.haxx.se/gknw.net/7.39.0/dist-w64/curl-7.39.0-devel-mingw64.7z następnie wypakowywuję, a pliki umieszczam w folderze: C:\curl
2. Następnie w Code::Bloks tworzę „Empty projekt” Ten nowy projekt zapisuję w folderze: D:\projekt\curl_projekt\curl_projekt.cbp
3. W "bild option" robie co następuje: - w zakładce "search directories"-->"Compiler"-->C:\curl\include - w zakładce "search directories"-->"Linker"-->C:\curl\lib
powższe czynności robię dla "curl_projekt" (a nie dla Debug czy Realise)
4.Klikam "Build" i dostaje log: " -------------- Build: Debug in curl_projekt (compiler: GNU GCC Compiler)---------------
Linking stage skipped (build target has no object files to link) Nothing to be done (all items are up-to-date)."
5. Jeśli do projektu dołączam plik to wyskakuje mi okienko z komunikatem: ##################################################### "It seems that this project has not been built yet. Do you want to build it now?" #Yes# #No# #Cancel# ##################################################### i log: " -------------- Run: Debug in curl_projekt (compiler: GNU GCC Compiler)---------------
Checking for existence: C:\projekt\curl_projekt\bin\Debug\curl_projekt.exe "
Jeśli klikam "Yes" to okienko zamyka się na ułamek sekundy, a w jego miejsce pojawia się identyczne. I tak w nieskończoność. Jeśli klikam "No" to okienko znika i pojawia się konsola na której praktycznie nic nie ma.
Straciłem na zabawę z tą bibloteką cały dzień i nie wiem już co mogę jeszcze zrobić. Czy ktoś mógłby mi pomóc i powiedzieć gdzie jest błąd? |
|
Jacob99 |
» 2014-11-22 19:13:46 Na pewno masz 64-bitowy kompilator? |
|
lekarz Temat założony przez niniejszego użytkownika |
» 2014-11-22 19:16:36 Na pewno mam 64 bitowy system. Natomiast kompilator to nie wiem. Jak mogę to sprawdzić? Na chwilę obecną mogę powiedzieć, że mam Code::Blocks 13.12 |
|
Monika90 |
» 2014-11-22 19:28:43 Sprawdzić rodzaj kompilatora możesz kompilując i uruchamiając ten program #include <iostream> #include <climits> int main() { std::cout << sizeof( void * ) * CHAR_BIT << '\n'; }
|
|
lekarz Temat założony przez niniejszego użytkownika |
» 2014-11-22 19:35:41 Wyskoczyło mi: 32
Teraz staram się bawić z bibliotekami dla Win32 ze strony: http://www.confusedbycode.com/curl/#downloads
jak na razie nic się nie zmieniło. |
|
lekarz Temat założony przez niniejszego użytkownika |
» 2014-11-22 19:53:34 Udało mi się pójść o krok dalej ale nadal coś jest nie tak z CURL-em. Log: " -------------- Build: Debug in curl_projekt (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -g -IC:\curl\include -c c:\projekt\curl_projekt\Untitled1.cpp -o obj\Debug\Untitled1.o mingw32-g++.exe -LC:\curl\lib -o bin\Debug\curl_projekt.exe obj\Debug\Untitled1.o obj\Debug\Untitled1.o: In function `Z9curl_readRKSsRSol': c:/projekt/curl_projekt/Untitled1.cpp:26: undefined reference to `_imp__curl_easy_init' c:/projekt/curl_projekt/Untitled1.cpp:30: undefined reference to `_imp__curl_easy_setopt' c:/projekt/curl_projekt/Untitled1.cpp:30: undefined reference to `_imp__curl_easy_setopt' c:/projekt/curl_projekt/Untitled1.cpp:30: undefined reference to `_imp__curl_easy_setopt' c:/projekt/curl_projekt/Untitled1.cpp:30: undefined reference to `_imp__curl_easy_setopt' c:/projekt/curl_projekt/Untitled1.cpp:30: undefined reference to `_imp__curl_easy_setopt' obj\Debug\Untitled1.o:c:/projekt/curl_projekt/Untitled1.cpp:30: more undefined references to `_imp__curl_easy_setopt' follow obj\Debug\Untitled1.o: In function `Z9curl_readRKSsRSol': c:/projekt/curl_projekt/Untitled1.cpp:37: undefined reference to `_imp__curl_easy_perform' c:/projekt/curl_projekt/Untitled1.cpp:39: undefined reference to `_imp__curl_easy_cleanup' obj\Debug\Untitled1.o: In function `main': c:/projekt/curl_projekt/Untitled1.cpp:46: undefined reference to `_imp__curl_global_init' c:/projekt/curl_projekt/Untitled1.cpp:66: undefined reference to `_imp__curl_global_cleanup' collect2.exe: error: ld returned 1 exit status Process terminated with status 1 (0 minute(s), 0 second(s)) 11 error(s), 0 warning(s) (0 minute(s), 0 second(s)) "
dla poniższego kodu:
#include <curl/curl.h> #include <fstream> #include <sstream> #include <iostream>
// callback function writes data to a std::ostream static size_t data_write(void* buf, size_t size, size_t nmemb, void* userp) { if(userp) { std::ostream& os = *static_cast<std::ostream*>(userp); std::streamsize len = size * nmemb; if(os.write(static_cast<char*>(buf), len)) return len; }
return 0; }
/** * timeout is in seconds **/ CURLcode curl_read(const std::string& url, std::ostream& os, long timeout = 30) { CURLcode code(CURLE_FAILED_INIT); CURL* curl = curl_easy_init();
if(curl) { if(CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &data_write)) && CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L)) && CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L)) && CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_FILE, &os)) && CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout)) && CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_URL, url.c_str()))) { code = curl_easy_perform(curl); } curl_easy_cleanup(curl); } return code; }
int main() { curl_global_init(CURL_GLOBAL_ALL);
std::ofstream ofs("output.html"); if(CURLE_OK == curl_read("http://google.com", ofs)) { // Web page successfully written to file }
std::ostringstream oss; if(CURLE_OK == curl_read("http://google.com", oss)) { // Web page successfully written to string std::string html = oss.str(); }
if(CURLE_OK == curl_read("http://google.com", std::cout)) { // Web page successfully written to standard output (console?) }
curl_global_cleanup(); }
|
|
Jacob99 |
» 2014-11-22 20:12:36 Czegoś nie zlinkowałeś. |
|
lekarz Temat założony przez niniejszego użytkownika |
» 2014-11-22 21:17:07 Znów trochę ruszyłem do przodu, ale wciąż są błędy. Log: " -------------- Build: Debug in curl_projekt (compiler: GNU GCC Compiler)---------------
Target is up to date. Nothing to be done (all items are up-to-date).
-------------- Run: Debug in curl_projekt (compiler: GNU GCC Compiler)---------------
Checking for existence: C:\projekt\curl_projekt\bin\Debug\curl_projekt.exe Executing: "D:\Program Files (x86)\CodeBlocks/cb_console_runner.exe" "C:\projekt\curl_projekt\bin\Debug\curl_projekt.exe" (in C:\projekt\curl_projekt\.) Process terminated with status -1073741510 (0 minute(s), 4 second(s)) "
Build: " ||=== Build: Debug in curl_projekt (compiler: GNU GCC Compiler) ===| C:\projekt\curl_projekt\Untitled1.cpp||In function 'int main()':| C:\projekt\curl_projekt\Untitled1.cpp|9|warning: variable 'res' set but not used [-Wunused-but-set-variable]| ||=== Build finished: 0 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===| ||=== Run: Debug in curl_projekt (compiler: GNU GCC Compiler) ===| "
Dodatkowo po wciśnięciu F9 wyskakuje okienko:
################################################################### The program can't start because C:\projekt\curl_projekt\bin\Debug\curl_projekt.exe is missing from your computer. Try reinstalling the program to fix this problem.
#OK#
###################################################################
Co ciekawe plik: C:\projekt\curl_projekt\bin\Debug\curl_projekt.exe jest widoczny za pozimu Windows-a. Po uruchomieniu w Windowsie wyskakuje taki sam błąd w okienku jak powyżej.
pojawia się także okienko konsoli ale brak tam jakichkolwiek danych oprócz czasu realizacji kodu.
Do taj pory moje linkowanie wyglądało tak: W "bild option": - w zakładce "search directories"-->"Compiler"-->C:\curl\include - w zakładce "search directories"-->"Linker"-->C:\curl\lib
w zakładce "Linker setting" dodałem C:\curl\lib\libcurl.lib |
|
« 1 » 2 |