Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: GCC nie działa
Forum PHP.pl > Inne > Komputery i oprogramowanie
slash12345
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ć?
Aure
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...
Jabol
polecam spróbować
Kod
gcc -lcurl -o out in.c
slash12345
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.
Aure
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
Jabol
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.