GNet
Ostatnio zmodyfikowano 2009-02-04 22:07
lynx Temat założony przez niniejszego użytkownika |
GNet » 2008-12-16 21:47:14 Otóż mam problem z biblioteką GNet. Od jakiegoś czasu staram się w niej coś majstrować, ale tylko na Linuxie - tam zainstalowałem sobie z chyba repo. Teraz chciałem coś popróbować na Windowsie, sciągam paczkę GNet dla Windows z http://www.gnetlibrary.org/, a następnie pobieram glib-a. Kopiuje wszystkie nagłówki GNet-a i Gliba do Code::Blocks. Później skopiowałem liby Gliba niestety nie wiem z jakiego powodu w paczce GNet nie znajduje się żaden lib. Może nie trzeba? -pomyślałem. Odpalam przykładowy kod z paczki i 13 errorów. :/ Kod:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <glib.h>
#include <gnet.h>
int main( int argc, char ** argv ) { GInetAddr * ia; GInetAddr * autoia; GList * interfaces; GList * i; gnet_init(); ia = gnet_inetaddr_get_host_addr(); if( ia != NULL ) { gchar * cname; gchar * name; name = gnet_inetaddr_get_name( ia ); if( !name ) name = g_strdup( "<none>" ); cname = gnet_inetaddr_get_canonical_name( ia ); g_assert( cname != NULL ); g_print( "Host name is %s (%s)\n", name, cname ); gnet_inetaddr_delete( ia ); g_free( name ); g_free( cname ); } else g_print( "Host name is <none> (<none>)\n" ); g_print( "Interfaces:\n" ); interfaces = gnet_inetaddr_list_interfaces(); for( i = interfaces; i != NULL; i = g_list_next( i ) ) { gchar * name; gchar * cname; ia =( GInetAddr * ) i->data; g_assert( ia != NULL ); name = gnet_inetaddr_get_name( ia ); g_assert( name != NULL ); cname = gnet_inetaddr_get_canonical_name( ia ); g_assert( cname != NULL ); g_print( "%s (%s)\n", name, cname ); gnet_inetaddr_delete( ia ); g_free( name ); } g_list_free( interfaces ); autoia = gnet_inetaddr_get_internet_interface(); g_print( "Internet inteface: " ); if( autoia ) { gchar * cname; cname = gnet_inetaddr_get_canonical_name( autoia ); g_print( "%s\n", cname ); g_free( cname ); } else g_print( "<none>\n" ); autoia = gnet_inetaddr_autodetect_internet_interface(); g_print( "Auto-detected internet inteface: " ); if( autoia ) { gchar * cname; cname = gnet_inetaddr_get_canonical_name( autoia ); g_print( "%s\n", cname ); g_free( cname ); } else g_print( "<none>\n" ); exit( EXIT_SUCCESS ); }
Log: -------------- Build: Release in rozne2 ---------------
Compiling: main.cpp In file included from C:/Program Files/CodeBlocks/MinGW/include/gnet2_0_2-dev/gnet.h:26, from C:\Documents and Settings\Piotrek\Pulpit\projekty\rozne\rozne2\main.cpp:24: C:/Program Files/CodeBlocks/MinGW/include/gnet2_0_2-dev/gnetconfig.h:16:26: warning: no newline at end of file Linking console executable: bin\Release\rozne2.exe obj\Release\main.o:main.cpp:(.text+0x1c): undefined reference to `_gnet_init' obj\Release\main.o:main.cpp:(.text+0x21): undefined reference to `_gnet_inetaddr_get_host_addr' obj\Release\main.o:main.cpp:(.text+0x33): undefined reference to `_gnet_inetaddr_get_name' obj\Release\main.o:main.cpp:(.text+0x45): undefined reference to `_gnet_inetaddr_get_canonical_name' obj\Release\main.o:main.cpp:(.text+0x6b): undefined reference to `_gnet_inetaddr_delete' obj\Release\main.o:main.cpp:(.text+0x8c): undefined reference to `_gnet_inetaddr_list_interfaces' obj\Release\main.o:main.cpp:(.text+0xa4): undefined reference to `_gnet_inetaddr_get_name' obj\Release\main.o:main.cpp:(.text+0xb6): undefined reference to `_gnet_inetaddr_get_canonical_name' obj\Release\main.o:main.cpp:(.text+0xda): undefined reference to `_gnet_inetaddr_delete' obj\Release\main.o:main.cpp:(.text+0x197): undefined reference to `_gnet_inetaddr_get_internet_interface' obj\Release\main.o:main.cpp:(.text+0x1b1): undefined reference to `_gnet_inetaddr_get_canonical_name' obj\Release\main.o:main.cpp:(.text+0x1d0): undefined reference to `_gnet_inetaddr_autodetect_internet_interface' obj\Release\main.o:main.cpp:(.text+0x1ea): undefined reference to `_gnet_inetaddr_get_canonical_name' collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 8 seconds) 13 errors, 1 warnings Macie jakieś pomysły jak ów problem rozwiązać? |
|
DejaVu |
» 2008-12-17 00:04:08 Kod Ci się skompilował prawidłowo - jedyne co Ci wypisuje to komunikat, że nie zlinkowałeś biblioteki gnet. Musisz dopisać ją do linker'a w opcjach projektu. |
|
DeBugger |
» 2008-12-17 14:55:23 Spróbuj w opcjach linkera dopisać tak: -lgnet |
|
lynx Temat założony przez niniejszego użytkownika |
» 2008-12-17 19:03:32 JCJJuż takie cos próbowałem dodać, ale wywala komunikat: C:\Program Files\CodeBlocks\MinGW\bin\ld.exe: cannot find -lgnet Tak jak już wspominałem w paczce nie ma żadnych libów do dodania. |
|
lynx Temat założony przez niniejszego użytkownika |
» 2008-12-18 15:25:00 Udało mi się znaleźć odpowiednią skompilowaną paczkę z lib-em. Martwi mnie jedynie to, że to do uruchomienia programu jest potrzebna duża ilość plików *.dll, ale o tym już inny temat. |
|
DejaVu |
» 2008-12-18 15:41:21 Jak uda mi się skompilować tą bibliotekę jako static'a dla GCC pod Windowsa to wgram to na repozytorium. |
|
lynx Temat założony przez niniejszego użytkownika |
» 2008-12-18 16:04:47 Dobra. Jakby Ci się udało to zrobić, to daj znać na gg. |
|
DejaVu |
» 2009-02-02 22:16:26 Rozpoczynam walkę :) /edit: Wgrałem na repozytorium skompilowaną bibliotekę statyczną GNET. http://svn.nq.pl/zasoby/Biblioteki,%20C++/GNet/Nie testowałem jej. Proszę Pietrzuch o przetestowanie na Twoich przykładach i Twojej konfiguracji. Teoretycznie powinna działać. |
|
« 1 » 2 |