Nowe posty

Autor Wątek: Blueconnect i pppd  (Przeczytany 3400 razy)

olka

  • Gość
Blueconnect i pppd
« 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

localghost

  • Gość
Blueconnect i pppd
« Odpowiedź #1 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)

localghost

  • Gość
Blueconnect i pppd
« Odpowiedź #2 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

olka

  • Gość
Blueconnect i pppd
« Odpowiedź #3 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

localghost

  • Gość
Blueconnect i pppd
« Odpowiedź #4 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

localghost

  • Gość
Blueconnect i pppd
« Odpowiedź #5 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)

olka

  • Gość
Blueconnect i pppd
« Odpowiedź #6 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

b_max

  • Gość
Blueconnect i pppd
« Odpowiedź #7 dnia: 2005-10-23, 17:30:43 »
Witam na Forum!
Mam problem z uruchomieniem blueconnecta pod Slackware - może ktoś spotkał się z czymś podobnym. Używam modemu GC89, pod Win nie ma problemów z działaniem tego sprzętu.

Modem odpowiada na komendy AT, poprawnie loguje się do sieci Era itp. Po ustawieniu parametrów w KPPP łączy się poprawnie, w logu widać CONNECTED, ale zaraz po tym następuje przerwanie połączenia i otrzymuję komunikat:
"pppd died unexpectedly, and error code: 16."

Ma ktoś z forumowiczów pomysł czym może to być spowodowane? Próbowałem już różnych opcji:
- wpisywanie dns ręcznie
- opcje lock i modem w etc/ppp/options
- uruchomienie kppp z pustą zawartością tego pliku
- problem pojawia się na koncie root'a, więc napewno nie ma też problemu z uprawnieniami.

Będę wdzięczny za jakiekolwiek podpowiedzi bo walczę z problemem już jakiś czas...

Pozdrawiam!

p.grzadziel

  • Gość
Blueconnect i pppd
« Odpowiedź #8 dnia: 2005-10-29, 14:23:56 »
2005-10-23 17:30:43 b_max napisał:

> Witam na Forum!
 > Mam problem z uruchomieniem blueconnecta pod Slackware - może ktoś spotkał się z czymś
 > podobnym. Używam modemu GC89, pod Win nie ma problemów z działaniem tego sprzętu.
 >
 > Modem odpowiada na komendy AT, poprawnie loguje się do sieci Era itp. Po ustawieniu parametrów
 > w KPPP łączy się poprawnie, w logu widać CONNECTED, ale zaraz po tym następuje przerwanie
 > połączenia i otrzymuję komunikat:
 > "pppd died unexpectedly, and error code: 16."
 >
 > Ma ktoś z forumowiczów pomysł czym może to być spowodowane? Próbowałem już różnych opcji:
 > - wpisywanie dns ręcznie
 > - opcje lock i modem w etc/ppp/options
 > - uruchomienie kppp z pustą zawartością tego pliku
 > - problem pojawia się na koncie root'a, więc napewno nie ma też problemu z uprawnieniami.
 >
 > Będę wdzięczny za jakiekolwiek podpowiedzi bo walczę z problemem już jakiś czas...
 >
 > Pozdrawiam!

p.grzadziel

  • Gość
Blueconnect i pppd
« Odpowiedź #9 dnia: 2005-10-29, 14:24:46 »
Witam, może znajdziesz coś dla siebie w tym artykule:
http://www.linuks.rk.edu.pl/art_74.html

pozdrawiam