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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Zainstalowałem teraz eclipse'a i mam problem. Dodałem parametr -lm jednak dalej mam niezadeklarowaną referencje.
Oto co wypluło mi IDE:
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.
#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
math.h brakuje.
Offline
Faktycznie swoją drogą go brakuje:)
**** 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
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
gcc plik.c -o plik.out -lm
Ostatnio edytowany przez Piotr3ks (2011-10-25 13:36:39)
Offline
ja mam to wszystko włączone, tylko nie wiem dlaczego nie korzysta z tego z przy kompilacji - x'sa poprawiłem.
Offline
w terminalu wszystko działa. Wysłałem screna że przełączniki mam ustawione, a mimo tego ich nie uzywa....
Offline
Masz opcję edytowania postów, raczej unikaj pisania jednego po drugim.
Offline
-lm dodaj do linkera nie kompilatora
Offline
@kamikaze Przepraszam:)
@milyges - dzięki, masz racje. Dodałem tą flagę do linkera i wszystko zaczęło działać:)
Offline