Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-10-25 12:41:42

  wolf91 - Użytkownik

wolf91
Użytkownik
Zarejestrowany: 2011-10-20

c undefined reference /gcc

Zainstalowałem teraz eclipse'a i mam problem. Dodałem parametr -lm jednak dalej mam niezadeklarowaną referencje.

Oto co wypluło mi IDE:

Kod:

make all Building file: ../src/jeden.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -lm -v -MMD -MP -MF"src/jeden.d" -MT"src/jeden.d" -o "src/jeden.o" "../src/jeden.c"
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-15' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Finished building: ../src/jeden.c
gcc version 4.6.1 (Debian 4.6.1-15) 
 
COLLECT_GCC_OPTIONS='-O0' '-g3' '-Wall' '-c' '-fmessage-length=0' '-v' '-MMD' '-MP' '-MF' 'src/jeden.d' '-MT' 'src/jeden.d' '-o' 'src/jeden.o' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.6/cc1 -quiet -v -imultilib . -imultiarch x86_64-linux-gnu -MMD src/jeden.d -MF src/jeden.d -MP -MT src/jeden.d -dD ../src/jeden.c -quiet -dumpbase jeden.c -mtune=generic -march=x86-64 -auxbase-strip src/jeden.o -g3 -O0 -Wall -version -fmessage-length=0 -o /tmp/ccypD3Qu.s
Building target: jeden
GNU C (Debian 4.6.1-15) version 4.6.1 (x86_64-linux-gnu)
Invoking: GCC C Linker
    compiled by GNU C version 4.6.1, GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9
gcc  -o "jeden"  ./src/jeden.o   
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.6/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
GNU C (Debian 4.6.1-15) version 4.6.1 (x86_64-linux-gnu)
    compiled by GNU C version 4.6.1, GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 0976cb1d7dfb8e8f549495a7543dd92b
../src/jeden.c: In function ‘main’:
../src/jeden.c:18:2: warning: implicit declaration of function ‘pow’ [-Wimplicit-function-declaration]
../src/jeden.c:18:4: warning: incompatible implicit declaration of built-in function ‘pow’ [enabled by default]
../src/jeden.c:17:8: warning: variable ‘y’ set but not used [-Wunused-but-set-variable]
../src/jeden.c:18:7: warning: ‘x’ is used uninitialized in this function [-Wuninitialized]
COLLECT_GCC_OPTIONS='-O0' '-g3' '-Wall' '-c' '-fmessage-length=0' '-v' '-MMD' '-MP' '-MF' 'src/jeden.d' '-MT' 'src/jeden.d' '-o' 'src/jeden.o' '-mtune=generic' '-march=x86-64'
 as --64 -o src/jeden.o /tmp/ccypD3Qu.s
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-O0' '-g3' '-Wall' '-c' '-fmessage-length=0' '-v' '-MMD' '-MP' '-MF' 'src/jeden.d' '-MT' 'src/jeden.d' '-o' 'src/jeden.o' '-mtune=generic' '-march=x86-64'
./src/jeden.o: In function `main':
/home/wolf/workspace/jeden/Debug/../src/jeden.c:18: undefined reference to `pow'
collect2: ld returned 1 exit status
make: *** [jeden] Błąd 1


**** Build Finished ****

no i samo źródło czysto testowe.

Kod:

#include <stdio.h>
#include <stdlib.h>


int main(void) {
    puts("!!!Hello World!!!\n"); /* prints !!!Hello World!!! */
    float x;
    float y;
    y=pow(x, 0.3);
    printf("%f", y);
    return EXIT_SUCCESS;
}

Ostatnio edytowany przez wolf91 (2011-10-25 12:42:15)

Offline

 

#2  2011-10-25 12:51:32

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: c undefined reference /gcc

math.h brakuje.

Offline

 

#3  2011-10-25 13:03:52

  wolf91 - Użytkownik

wolf91
Użytkownik
Zarejestrowany: 2011-10-20

Re: c undefined reference /gcc

Faktycznie swoją drogą go brakuje:)

Kod:

**** Build of configuration Debug for project jeden ****

make all 
Building target: jeden
Invoking: GCC C Linker
gcc  -o "jeden"  ./src/jeden.o   
./src/jeden.o: In function `main':
/home/wolf/workspace/jeden/Debug/../src/jeden.c:18: undefined reference to `pow'
collect2: ld returned 1 exit status
make: *** [jeden] Błąd 1

**** Build Finished ****

z tego co widzę chodź nie wiem czy dobrze rozumiem, eclipse dodaje tylko parametr o jednak w parametrach mam ustawione:
-O0 -g3 -Wall -c -fmessage-length=0 -lm

Offline

 

#4  2011-10-25 13:28:02

  Piotr3ks - Też człowiek :-)

Piotr3ks
Też człowiek :-)
Zarejestrowany: 2007-06-24

Re: c undefined reference /gcc

Manual GCC napisał(-a):

-c    Compile or assemble the source files, but do not link. The linking stage simply is not done. The ultimate output is in the form of an object file for each source file.

Poza tym do zmiennej "x" nie jest nic przypisane. A w pow() używasz x'a.

EDIT:

Spróbuj bezpośrednio z konsoli wywołać gcc

Kod:

gcc plik.c -o plik.out -lm

Ostatnio edytowany przez Piotr3ks (2011-10-25 13:36:39)

Offline

 

#5  2011-10-25 13:39:40

  wolf91 - Użytkownik

wolf91
Użytkownik
Zarejestrowany: 2011-10-20

Re: c undefined reference /gcc

http://imageshack.us/photo/my-images/39/ex1b.png/

ja mam to wszystko włączone, tylko nie wiem dlaczego nie korzysta z tego z przy kompilacji - x'sa poprawiłem.

Offline

 

#6  2011-10-25 13:43:41

  wolf91 - Użytkownik

wolf91
Użytkownik
Zarejestrowany: 2011-10-20

Re: c undefined reference /gcc

w terminalu wszystko działa. Wysłałem screna że przełączniki mam ustawione, a mimo tego ich nie uzywa....

Offline

 

#7  2011-10-25 14:31:02

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: c undefined reference /gcc

Masz opcję edytowania postów, raczej unikaj pisania jednego po drugim.

Offline

 

#8  2011-10-25 14:55:58

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: c undefined reference /gcc

-lm dodaj do linkera nie kompilatora

Offline

 

#9  2011-10-26 05:26:56

  wolf91 - Użytkownik

wolf91
Użytkownik
Zarejestrowany: 2011-10-20

Re: c undefined reference /gcc

@kamikaze Przepraszam:)

@milyges - dzięki, masz racje. Dodałem tą flagę do linkera i wszystko zaczęło działać:)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)