Nowe posty

Autor Wątek: [c/c++] Kompilacja: undefined reference to ...  (Przeczytany 8744 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« dnia: 2005-10-24, 01:14:02 »
dzien dobry

zainstalowalm suse na partycjjach stworzonych specjanei dla linuxa za pomoca partition magic. linux dziala ale przy wyborze systemu nie chce załadować windy. wyswietla blad i rebootoje sie.

uruchamiam suse jeszce raz z plytki w celu naprawienia bledow systemu. wyswietla ze program ladujacy jest na dysku na ktorym jest winda a nie na tym na ktorym linux. zmieniam na ten na kotrym jest linux ale nie wiem czy to w ogle o to chodzi i czy sie ta zmiana akutalizuje. w kazdym razie nie przynosi zadnych efektow.

jestem totalnie zielona z linuxa - pierwszy raz w zyciu mam z nim do czynienia
 a z kompami  tez nie nie najlepiej.
czy trzeba cos zmienic w biosie zeby ladowal XP? jesli tak to jak?


Offline Robert

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2495
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #1 dnia: 2005-10-24, 09:04:34 »
2005-10-24 01:14:02 ankou napisał:

> dzien dobry
 dzień dobry

 > zainstalowalm suse
ja też (tak na marginesie którego?)

> na partycjjach stworzonych specjanei dla linuxa za pomoca partition magic.
 > linux dziala ale przy wyborze systemu nie chce załadować windy. wyswietla blad i rebootoje
 > sie.
 >
 > uruchamiam suse jeszce raz z plytki w celu naprawienia bledow systemu. wyswietla ze program
 > ladujacy jest na dysku na ktorym jest winda a nie na tym na ktorym linux. zmieniam na ten na
 > kotrym jest linux ale nie wiem czy to w ogle o to chodzi i czy sie ta zmiana akutalizuje. w
 > kazdym razie nie przynosi zadnych efektow.
 >
 > jestem totalnie zielona z linuxa - pierwszy raz w zyciu mam z nim do czynienia
 >  a z kompami  tez nie nie najlepiej.
 > czy trzeba cos zmienic w biosie zeby ladowal XP? jesli tak to jak?
 >
 >

wklej tu lilo.conf, albo grub.conf w zależności od okoliczności.
Zanim popełnisz grafomaństwo: 1 | 2 | 3
Baza RPM Jak szukać informacji

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #2 dnia: 2005-10-24, 18:38:32 »
udało mi sie rozwiazac ten problem.
dzięki za chęć pomocy :)
oto opis problemu i rozwiazanie ktore poskutkowalo:
http://supportforum.sun.com/sjds/index.php?t=msg&goto=2762&rid=0
ankou

Offline Robert

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2495
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #3 dnia: 2005-10-24, 20:17:16 »
2005-10-24 18:38:32 ankou napisał:

> udało mi sie rozwiazac ten problem.
 > dzięki za chęć pomocy :)
 > oto opis problemu i rozwiazanie ktore poskutkowalo:
 > http://supportforum.sun.com/sjds/index.php?t=msg&goto=2762&rid=0
 > ankou
 
Congratulations!

You are not newbie, you are the profesional userof linux.
Zanim popełnisz grafomaństwo: 1 | 2 | 3
Baza RPM Jak szukać informacji

Offline Aleksandra Brzezińska

  • Users
  • Guru
  • *****
  • Wiadomości: 776
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #4 dnia: 2005-10-23, 23:10:14 »
Cześć
od dwóch dni walczę z kompilacją programu z książki - prostego serwera komunikującego się przez protokół sctp:
http://icarus.cs.weber.edu/home/bob/cs3730/book/0131411551_ch10lev1sec2.html
(zaznaczam, że oprócz tego, niezbędnych jest jeszcze kilka plików z funkcjami i nagłówkowych - wszystko wrzucilam do jednego pliku). Po wydaniu :
gcc serwer.c -o serwer otrzymuje:
/tmp/ccGBjGW5.o(.text+0x5e): In function `sctp_address_to_associd':
: undefined reference to `sctp_opt_info'
/tmp/ccGBjGW5.o(.text+0x216): In function `main':
: undefined reference to `sctp_recvmsg'
/tmp/ccGBjGW5.o(.text+0x2ae): In function `main':
: undefined reference to `sctp_sendmsg'
collect2: ld returned 1 exit status

Kurcze o co chodzi :. Wszystkie 3 funkcje są wymienione w pliku netinet/sctp.h
Pierwszy raz spotkałam się z czymś takim, nawet nie wiem jak szukać pomocy w googlach.

Bardzo proszę o jakieś wskazówki
olka

Offline

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 165
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #5 dnia: 2005-10-23, 23:27:18 »
wyglada na to ze trzeba dolaczyc jakas biblioteke podczas kompilacji, biblioteki dolacza sie przez opcje -l (male L)

Offline

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 165
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #6 dnia: 2005-10-23, 23:36:38 »
zerknij tutaj:
http://docs.sun.com/app/docs/doc/816-5170/6mbb5espq?a=view

jest to opis funkcji sctp_sendmsg (jednej z tych przy ktorych sie wywala linkowanie) i zobacz w akapicie SYNOPSIS  z jakimi parametrami (pogrubione) wywoluja kompilator aby skompilowac program korzystajacy z SCTP

Offline Aleksandra Brzezińska

  • Users
  • Guru
  • *****
  • Wiadomości: 776
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #7 dnia: 2005-10-24, 00:21:17 »
2005-10-23 23:36:38 localghost napisał:

> zerknij tutaj:
 > http://docs.sun.com/app/docs/doc/816-5170/6mbb5espq?a=view
 >
 > jest to opis funkcji sctp_sendmsg (jednej z tych przy ktorych sie wywala linkowanie) i zobacz w
 > akapicie SYNOPSIS  z jakimi parametrami (pogrubione) wywoluja kompilator aby skompilowac program
 > korzystajacy z SCTP

Dziękuję ogromnie za szybką i jakże trafną pomoc :-).

Pomogło:
gcc      -lnsl -lsctp

----------
Ale przy kliencie nie bardzo :(
z w/w parametrami:
/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
collect2: ld returned 1 exit status

Teraz to już nic nie rozumiem, przecież nic takiego nie wywołuję :

pozdrawiam
olka

Offline

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 165
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #8 dnia: 2005-10-24, 09:17:37 »
2005-10-24 00:21:17 olka napisał:

 > Ale przy kliencie nie bardzo :(
 > z w/w parametrami:
 > /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../crt1.o(.text+0x18): In function `_start':
 > ../sysdeps/i386/elf/start.S:115: undefined reference to `main'
 > collect2: ld returned 1 exit status
 >
 > Teraz to już nic nie rozumiem, przecież nic takiego nie wywołuję :
 >
 > pozdrawiam
 > olka
 >

to jest spowodowane chyba tym, ze probujesz zbudowac plik wykonywalny a nie masz w pliku zrodlowym funkcji main(); byc moze chcesz jedynie skompilowac ten plik (opcja -c)
zapewne chcesz zbudowac plik wykonywalny z pliku 'sctp_strcli.c' a powinnas go jedynie skompilowac i polaczyc z plikiem 'sctpclient01.c' podczas budowania pliku wykonywalnego klienta, np.:

gcc -c sctp_strcli.c
gcc sctpclient01.c sctp_strcli.o -o nazwa_wykonywalnego (teraz dolacz odpowiednie biblioteki)

zauwaz ze zmienilo sie rozszerzenie pliku 'sctp_strcli' w drugiej linijce kompilacji

Offline

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 165
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #9 dnia: 2005-10-24, 09:30:16 »
zeby nie bylo, to dodam ze mozesz wszystko zamiescic w jednej linijce (bez rozbijania procesu kompilacji i linkowania), ale dodam ze rozbicie tych dwoch etapow budowania pliku wykonywalnego jest przydatne gdy np. piszesz makefile'a

gcc sctpclient01.c sctp_strcli.c -o nazwa_wykonywalnego (teraz dolacz odpowiednie biblioteki)

Offline Aleksandra Brzezińska

  • Users
  • Guru
  • *****
  • Wiadomości: 776
    • Zobacz profil
[c/c++] Kompilacja: undefined reference to ...
« Odpowiedź #10 dnia: 2005-10-24, 10:38:05 »
2005-10-24 09:30:16 localghost napisał:

> zeby nie bylo, to dodam ze mozesz wszystko zamiescic w jednej linijce (bez rozbijania procesu
 > kompilacji i linkowania), ale dodam ze rozbicie tych dwoch etapow budowania pliku wykonywalnego
 > jest przydatne gdy np. piszesz makefile'a
 >
 > gcc sctpclient01.c sctp_strcli.c -o nazwa_wykonywalnego (teraz dolacz odpowiednie biblioteki)
 >

Dzięki ogromne, późna pora chyba na mózg mi sie rzuciła :D. Faktycznie kompilowałam jedną z funkcji składowych a nie main. Przepraszam. I jeszcze raz bardzo dziękuję za pomoc.
Wszystko sie juz skompilowało - co prawda nie dziala :, ale to juz inna bajka.

pozdrawiam
olka