Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z „instalacją” cURL-a pod Code::Blocks [Linking stage skipped (build target has no object files to link)]

Ostatnio zmodyfikowano 2014-11-22 21:58
Autor Wiadomość
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?
P-121175
Jacob99
» 2014-11-22 19:13:46
Na pewno masz 64-bitowy kompilator?
P-121176
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
P-121177
Monika90
» 2014-11-22 19:28:43
Sprawdzić rodzaj kompilatora możesz kompilując i uruchamiając ten program
C/C++
#include <iostream>
#include <climits>
int main()
{
    std::cout << sizeof( void * ) * CHAR_BIT << '\n';
}

P-121178
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.
P-121179
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();
}
P-121182
Jacob99
» 2014-11-22 20:12:36
Czegoś nie zlinkowałeś.
P-121183
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
P-121194
« 1 » 2
  Strona 1 z 2 Następna strona