Титла: gbgoffice не се компилира
Публикувано от: nov_chovek в Dec 14, 2008, 23:40
Ползвам x86_64 версията на Убунту 8.10. При компилирание на gbgoffice 1.4 се получава следното: milen@kompito:~/Desktop/gbgoffice-1.4$ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking dependency style of gcc... gcc3 checking for library containing strerror... none required checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ANSI C... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ANSI C... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking how to run the C preprocessor... gcc -E checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for GTKMM... yes configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating pixmaps/Makefile config.status: creating src/config.h config.status: executing depfiles commands
... и после пускам make: Making all in src make[1]: Entering directory `/home/milen/Desktop/gbgoffice-1.4/src' make all-am make[2]: Entering directory `/home/milen/Desktop/gbgoffice-1.4/src' if g++ -DHAVE_CONFIG_H -I. -I. -I. -DDATA_DIR_CONFIG=\"/usr/local/share/bgoffice/\" -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0 -g -O2 -MT database.o -MD -MP -MF ".deps/database.Tpo" -c -o database.o database.cpp; \ then mv -f ".deps/database.Tpo" ".deps/database.Po"; else rm -f ".deps/database.Tpo"; exit 1; fi database.cpp: In member function ‘bool Database::init(const char*, long int)’: database.cpp:117: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result database.cpp: In member function ‘bool Database::findWord(const char*)’: database.cpp:168: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result database.cpp:179: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result database.cpp:183: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result database.cpp:185: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result database.cpp: In member function ‘void Database::readData()’: database.cpp:231: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result database.cpp: In member function ‘char* Database::getNextRandomWord()’: database.cpp:271: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result if g++ -DHAVE_CONFIG_H -I. -I. -I. -DDATA_DIR_CONFIG=\"/usr/local/share/bgoffice/\" -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0 -g -O2 -MT history.o -MD -MP -MF ".deps/history.Tpo" -c -o history.o history.cpp; \ then mv -f ".deps/history.Tpo" ".deps/history.Po"; else rm -f ".deps/history.Tpo"; exit 1; fi if g++ -DHAVE_CONFIG_H -I. -I. -I. -DDATA_DIR_CONFIG=\"/usr/local/share/bgoffice/\" -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0 -g -O2 -MT translator.o -MD -MP -MF ".deps/translator.Tpo" -c -o translator.o translator.cpp; \ then mv -f ".deps/translator.Tpo" ".deps/translator.Po"; else rm -f ".deps/translator.Tpo"; exit 1; fi if g++ -DHAVE_CONFIG_H -I. -I. -I. -DDATA_DIR_CONFIG=\"/usr/local/share/bgoffice/\" -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0 -g -O2 -MT properties.o -MD -MP -MF ".deps/properties.Tpo" -c -o properties.o properties.cpp; \ then mv -f ".deps/properties.Tpo" ".deps/properties.Po"; else rm -f ".deps/properties.Tpo"; exit 1; fi if g++ -DHAVE_CONFIG_H -I. -I. -I. -DDATA_DIR_CONFIG=\"/usr/local/share/bgoffice/\" -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0 -g -O2 -MT translator_manager.o -MD -MP -MF ".deps/translator_manager.Tpo" -c -o translator_manager.o translator_manager.cpp; \ then mv -f ".deps/translator_manager.Tpo" ".deps/translator_manager.Po"; else rm -f ".deps/translator_manager.Tpo"; exit 1; fi translator_manager.cpp: In member function ‘std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > TranslatorManager::findFiles(const char*, const char*)’: translator_manager.cpp:314: error: ‘strlen’ was not declared in this scope make[2]: *** [translator_manager.o] Error 1 make[2]: Leaving directory `/home/milen/Desktop/gbgoffice-1.4/src' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/milen/Desktop/gbgoffice-1.4/src' make: *** [all-recursive] Error 1
и гърми. Някаква идея защо?
Титла: Re: gbgoffice не се компилира
Публикувано от: nov_chovek в Dec 14, 2008, 23:44
ДА с е еб... то го имало в хранилищата компилирано :) Сори за постигна :)
Титла: Re: gbgoffice не се компилира
Публикувано от: neter в Dec 14, 2008, 23:59
Тъкмо щях да ти викам да промениш ред 25 във файла src/translator_manager.cpp от GeSHi (C++): #include <string>
на GeSHi (C): #include <string.h>
Но щом си решил вече да го качваш от хранилищата... ;)
Титла: Re: gbgoffice не се компилира
Публикувано от: nov_chovek в Dec 15, 2008, 00:06
За спорта реших да последвам съвета ти и ...наистина се компилира. Мерси :) ...въпреки че го свалих вече от хранилищата.
А дали това ".h" нарочно е изпуснато или..?
Титла: Re: gbgoffice не се компилира
Публикувано от: Gaara в Dec 15, 2008, 00:50
Само да допълня другаря Neter :) предполагам, че ще видиш и много съобщения от вида: language_tools.h:218: warning: deprecated conversion from string constant to ‘char*’
За да ги разкараш, в случай, че искаш, то изпълни: [root gbgoffice-1.4]# sed 's/char/const char/g' src/language_tools.h >src/temp [root gbgoffice-1.4]# mv src/temp src/language_tools.h mv: overwrite `src/language_tools.h'? y [root gbgoffice-1.4]#
Вече не би трябвало да имаш абс. никакъв проблем.... само хората с FC биха получили нещо от сорта на: workhelper.h:62: error: ‘SigC’ has not been declared workhelper.h:62: error: ISO C++ forbids declaration of ‘Connection’ with no type workhelper.h:62: error: expected ‘;’ before ‘con_wait’ In file included from trayicon.cpp:25: dictgui.h:150: error: ‘SigC’ has not been declared dictgui.h:150: error: ISO C++ forbids declaration of ‘Connection’ with no type
Причината е в големите букви :( ... за целта: [root gbgoffice-1.4]# sed 's/SigC::Connection/sigc::connection/g' src/workhelper.h >src/temp [root gbgoffice-1.4]# mv src/temp src/workhelper.h mv: overwrite `src/workhelper.h'? y [root gbgoffice-1.4]# sed 's/SigC::Connection/sigc::connection/g' src/dictgui.h >src/temp [root gbgoffice-1.4]# mv src/temp src/dictgui.h mv: overwrite `src/dictgui.h'? y [root gbgoffice-1.4]#
и след това не би трябвало да има проблем :)
Титла: Re: gbgoffice не се компилира
Публикувано от: task_struct в Dec 15, 2008, 00:51
А дали това ".h" нарочно е изпуснато или..?
Да. В С++ разширението не е нужно :)
Титла: Re: gbgoffice не се компилира
Публикувано от: neter в Dec 15, 2008, 01:36
Ами... не че не е нужно разширението .h, просто хедърният файл string.h от С в С++ е получил ново име (без разширението .h). Естествено, не само тази промяна е направена, но не мога да кажа за какъв дявол е била нужна тази разлика в името на файла. Така решили, така го направили. Пък и всеки ентусиаст, който има нещо против разликата в името, може да го промени, ако му е чак такъв трън в очите (кой ли би се занимал с такова нещо, хаха, макар че, като се замисля, то и един symlink би свършил работа) :) А относно gbgoffice... писан е на C++, а ти ползваш C компилатор и затова гърми. Не съм никак навътре нито в C, нито в C++, но по инерция бих предположил, че и останалите проблеми, за които говори Gaara, се дължат на разликите между C и C++. Тук ($2) попаднах на едно малко сравнение за някои разлики между C и C++, пък на който му е интересно, може да прочете и още документация ;)
Титла: Re: gbgoffice не се компилира
Публикувано от: believer в Dec 15, 2008, 07:48
Аз пък вчера се инсталирах kbgoffice последната версия. :) Информация от къде да се свали тук: http://linux-bg.org/cgi-bin/y/index.pl?page=gallery&key=409558126&list=all#other_comments ($2)
Титла: Re: gbgoffice не се компилира
Публикувано от: v_badev в Dec 15, 2008, 11:14
neter, хич не си прав. :) Тук ($2) е обяснено накратко каква е разликата когато иползваш хедър с разширение .h и такъв без. Също така nov_chovek ползва C++ компилатор (g++). Причината за тези грешки най-вероятно е че gbgoffice е стар проект, а новите версии на g++ са по-стриктни.
Титла: Re: gbgoffice не се компилира
Публикувано от: neter в Dec 15, 2008, 20:47
Това беше хубава информация. Мерси за поправката. Сбъркал съм в предположенията си. Но картинката не се изясни напълно. Аз компилирах gbgoffice без проблем с g++ 4.2.3 и, според мен, нормално - имайки предвид, че в gbgoffice се използва файлът string без .h разширението (т.е., по новите стандарти). Остава nov_chovek да е използвал стара версия на g++. Той ще каже. По изходите от компилирането не мога да разбера. Всъщност, не виждам разлики в изходите при мен и при него, освен грешката. Интересен е един ред при конфигурацията, който е един и същи и при двама ни checking for string.h... yes Защо търсим string.h, след като в кода се използва string файлът. Както казах, хич не съм навътре в това и би ми било интересно да прочета някакво изясняване на картинката от някой по-запознат от мен, ако на някой му се занимава :)
Титла: Re: gbgoffice не се компилира
Публикувано от: nov_chovek в Dec 15, 2008, 21:08
@neter:
/usr/bin/g++-4.3
Явно съм с по-нова от твоята версия - пакета ми е от убунту 8.10 за x86_64.
Титла: Re: gbgoffice не се компилира
Публикувано от: neter в Dec 15, 2008, 21:35
Това само повече замъгли картинката - защо по-нова версия на g++ ще чете по по-стари стандарти. Въобще, защо ще чете по каквито и да е било стари стандарти. Интересно... :)
|