Sida 1 av 1

Kompilering av nanodc

Postat: 17 sep 2009, 19:49
av Victor
Hejsan!

Jag försöker få igång nanodc (http://sourceforge.net/projects/nanodc/) men lyckas inte..

Jag följer detta:

Kod: Markera allt

Dependencies:
-------------
    * ncursesw
    * pthread
    * zlib
    * libbz2
    * scons
    * boost-thread
    * boost-signals
    * glib 2.0
    * openssl

Compiling:
----------

Debian/Ubuntu users can install everything with apt-get:
    * apt-get install libbz2-dev libncursesw5-dev pkg-config scons zlib1g-dev libglib2.0-dev libssl-dev libboost-thread-dev libboost-signals-dev

Check out the source with svn (apt-get install subversion)
    * svn co https://svn.kapsi.fi/nanodc-dev/

Change to correct directory in order to compile the source
    * cd nanodc-dev/trunk/src/

Run scons (apt-get install scons)
    * scons

To compile debug-version use 'scons debug=1'
    * ./nanodc
Men får ett kompileringsfel som er ut som sådant:

Kod: Markera allt

victor@staropramen-server:~/src/nanodc-dev/trunk/src$ scons
scons: Reading SConscript files ...                        
Checking for g++ >= 4.0...(cached) yes                     
Checking for pkg-config... yes                             
Checking for C++ header file tr1/functional... yes         
Checking for C++ library ncursesw... yes                   
Checking for C++ library pthread... yes                    
Checking for C++ library z... yes                          
Checking for C++ library bz2... yes                        
Checking for glib-2.0... yes                               
Checking for C++ library boost_signals... yes
Checking for C++ library boost_thread... yes
Checking for C++ library ssl... yes
Checking for C function backtrace()... yes
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/client/AdcCommand.o -c -DUSE_STACKTRACE=1 -ansi -Wall -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -rdynamic -I. -Iboost/boost/tr1/tr1 -Iboost client/AdcCommand.cpp
g++ -o build/client/AdcHub.o -c -DUSE_STACKTRACE=1 -ansi -Wall -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -rdynamic -I. -Iboost/boost/tr1/tr1 -Iboost client/AdcHub.cpp
client/AdcHub.cpp: In member function ‘void dcpp::AdcHub::handle(dcpp::AdcCommand::Type<5522759u>, dcpp::AdcCommand&)’:
client/AdcHub.cpp:523: error: ‘log’ was not declared in this scope
client/AdcHub.cpp:523: warning: comparison between signed and unsigned integer expressions
scons: *** [build/client/AdcHub.o] Error 1
scons: building terminated because of errors.
Jag testade att lägga till "#include <math.h>" i filen AdcHub.cpp vilket gjorde så att den gick vidare i kompileringen men fastnade på ett annat ställe.. Känner heller att jag inte pallar med att ändra i deras kod för att få det funka. Har de kodat dåligt eller har jag gjort något fel?

Tacksam för all hjälp!

Re: Kompilering av nanodc

Postat: 17 sep 2009, 22:29
av philip5
Tror den där koden kan bli lite meckig att få igång med gcc 4.3.3 eftersom koden följer lite äldre standard och gcc har blivit lite striktare i sin syntax.

Ska man ge sig på att jaga cleanups i koden så kan man kanske kolla på att antingen använda #include "stdinc.h" för clientkod. stdinc.h i clientmappen verkar definiera just sånt du är ute efter men de använder inte den så mycket och inte när den behövs eller inte. Det är inte bara att kasta in de definitionerna rakt av överallt och hoppas att det ska funka. Undrar om det inte är bättre annars att köra #include <memory> istället för "#include <math.h>.