Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> GCC nie działa, Problem z linkowaniem?
slash12345
post 23.07.2006, 17:28:19
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 21.04.2006

Ostrzeżenie: (0%)
-----


Witam,
Po przeczytaniu trochę o cURL postanowiłem napisać program w C, używający tej biblioteki. Niby wszystko ładnie, program jednak się nie kompilował. Sprawdziłem więc, czy przykładowy program z oficjalnej strony uda się skompilować. Oto kod źródłowy:
Kod
#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "curl.haxx.se");
    res = curl_easy_perform(curl);

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}


Potem piszę sobie:
$ gcc knights.c

I dostaję błąd:
/tmp/ccIrILAj.o: In function `main':
knights.c:(.text+0x9): undefined reference to `curl_easy_init'
knights.c:(.text+0x2c): undefined reference to `curl_easy_setopt'
knights.c:(.text+0x35): undefined reference to `curl_easy_perform'
knights.c:(.text+0x41): undefined reference to `curl_easy_cleanup'
collect2: ld returned 1 exit status
To były tylko wywołania funkcji! Jakim więc cudem TO może nie działać?

Ten post edytował slash12345 23.07.2006, 17:28:56


--------------------
Kod
thewanderer@debian:~$ sudo apt-get dist-upgrade
Konieczne pobranie 666KB pakietów. Czy chcesz kontynuować? [T/n] nieeeeeeee
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Aure
post 23.07.2006, 18:58:29
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.05.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


a masz zainstalowane wszystkie elementy biblioteki curl (curl, curl-devel, curl-libc, curl-static) ?
po komunikatach błędów można wnioskować, że gcc nie może znależć funkcji curla w związku z czym polecam szczególnie przyjrzeć się pakietom curl-libs i curl-devel...


--------------------


Go to the top of the page
+Quote Post
Jabol
post 23.07.2006, 21:41:05
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


polecam spróbować
Kod
gcc -lcurl -o out in.c
Go to the top of the page
+Quote Post
slash12345
post 24.07.2006, 14:47:07
Post #4





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 21.04.2006

Ostrzeżenie: (0%)
-----


Przy pierwszej instalacji libcurl (instalowałem ze źródła) coś nie działało. Jednak po reinstalacji i reboocie, choć nie wiem w czym dokładnie pomógł reboot, program nagle zaczął się kompilować w zwykły sposób. Chyba powinienem przesiąść się na Slackware, SuSE jest trochę za dziwny.

Ten post edytował slash12345 24.07.2006, 14:52:52


--------------------
Kod
thewanderer@debian:~$ sudo apt-get dist-upgrade
Konieczne pobranie 666KB pakietów. Czy chcesz kontynuować? [T/n] nieeeeeeee
Go to the top of the page
+Quote Post
Aure
post 24.07.2006, 19:58:42
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.05.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jeśli nie robiłeś restartu po instalacji to najprawdopodobniej biblioteki nie zostały zlinkowane (niektóre systemy robią to automatycznie - np. PLD tongue.gif). smile.gif


--------------------


Go to the top of the page
+Quote Post
Jabol
post 24.07.2006, 20:22:46
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Ale szczerze mówiąc to wciąż nie czaje jak Ci to może działać bez -lcurl? U mnie na Gentoo zawsze musze linkować ręcznie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:42