Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

GNet

Ostatnio zmodyfikowano 2009-02-04 22:07
Autor Wiadomość
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:
C/C++
/* Print information about the host
* Copyright (C) 2000  David Helder
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#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();
   
    /* Print info about me */
    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" );
   
    /* Print interfaces */
    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ć?
P-2780
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.
P-2781
DeBugger
» 2008-12-17 14:55:23
Spróbuj w opcjach linkera dopisać tak:
-lgnet
P-2787
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.
P-2806
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.
P-2811
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.
P-2813
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.
P-2815
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ć.
P-4047
« 1 » 2
  Strona 1 z 2 Następna strona