prilinkovanie externej kniznice

Programovacie jazyky, rady, poradňa...
henrik35
Amateur
Amateur
Príspevky: 11
Registrovaný: 05 mar 2014, 21:39

prilinkovanie externej kniznice

Príspevok od používateľa henrik35 »

nevie mi niekto poradit ako prilinkujem externu kniznicu v gcc v ubuntu?
napr math.h?

//autoeditácia príspevku (23 Aug 2014, 18:50)
ked dam " gcc test.c -o test -lm " tak mi po zadani prikazu ./a.out napise ze subor neexistuje
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: prilinkovanie externej kniznice

Príspevok od používateľa harrison314 »

math.h neni extrena kniznica ale hlavickovy subor, nelinkujes nic len das do zdrojaku #include<math.h>
henrik35
Amateur
Amateur
Príspevky: 11
Registrovaný: 05 mar 2014, 21:39

Re: prilinkovanie externej kniznice

Príspevok od používateľa henrik35 »

to mam v zdrojovom kode a vyhadzuje mi toto
/tmp/cczkOPTX.o: In function `main':
vft.c:(.text+0x54): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: prilinkovanie externej kniznice

Príspevok od používateľa audiotrack »

tak to v ňom máš asi na nesprávnom mieste. Čo keby si sem ten svoj zdroják poslal?
henrik35
Amateur
Amateur
Príspevky: 11
Registrovaný: 05 mar 2014, 21:39

Re: prilinkovanie externej kniznice

Príspevok od používateľa henrik35 »

tu je

#include <stdio.h>
#include <math.h>

int main(void)
{
unsigned int d,n;

printf("Zadaj cislo n: ");
scanf("%u",&n);

d=(int) sqrt(n);
while (n%d!=0)
d--;

if (d==1)
printf("%u je prvocislo",n);
else printf("%u neni prvocislo",n);

return 0;
}
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: prilinkovanie externej kniznice

Príspevok od používateľa pcsiete »

henrik35 napísal:to mam v zdrojovom kode a vyhadzuje mi toto
/tmp/cczkOPTX.o: In function `main':
vft.c:(.text+0x54): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
Toto už s hlavičkovým súborom nesúvisí, pri linkovaní všetkých tvojich súborov dokopy musíš použiť -lm, aby sa zlinkovala aj knižnica.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: prilinkovanie externej kniznice

Príspevok od používateľa harrison314 »

Ak pouzivas gcc test.c -o test -lm tak program spustis cez ./test
Mne ho skompilovalo v pohode.
henrik35
Amateur
Amateur
Príspevky: 11
Registrovaný: 05 mar 2014, 21:39

Re: prilinkovanie externej kniznice

Príspevok od používateľa henrik35 »

uz to ide
ja som daval
gcc vft.c -o vft -lm
./a.out

ked som dal ./vft tak to slo
dik za pomoc
Napísať odpoveď