geometer / FBReader

Official FBReader C++ project repository
http://www.fbreader.org/
540 stars 169 forks source link

FBReader cannot be compiled on GCC 4.5.0 #165

Open snowwlex opened 12 years ago

snowwlex commented 12 years ago

from http://old.fbreader.org/mantis/view.php?id=384

In line 42 of fbreader/src/library/library.cpp , a constructor (Library::Library) is used as a type declaration. This is allowed in previous GCC releases but no longer in GCC 4.5.0 -- there are many similar problems in other products shipped by Linux distributions (Arch, Fedora, Ubuntu) that have moved to this new compiler

See the Fedora build log: https://bugzilla.redhat.com/attachment.cgi?id=444067

Compiling Author.o ...Compiling Tag.o ...Compiling Library.o ...Compiling Comparators.o ...Library.cpp:42:1: error: 'Library::Library' names the constructor, not the type

This only affects building with TARGET_ARCH=desktop UI=dummy, which we use in Fedora because we compile both GTK and Qt4 interfaces in separate steps. Additional Information Experienced in Fedora 14 pre-release as well as Rawhide, our development branch. Fix attached.

attached fix: http://old.fbreader.org/mantis/file_download.php?file_id=105&type=bug

twobob commented 11 years ago

--- fbreader-0.12.10-orig/fbreader/src/library/Library.cpp 2010-04-01 15:14:24.000000000 +0200 +++ fbreader-0.12.10/fbreader/src/library/Library.cpp 2010-04-13 13:34:06.000000000 +0200 @@ -39,7 +39,7 @@ shared_ptr Library::ourInstance; const size_t Library::MaxRecentListSize = 10;

-Library::Library &Library::Instance() { +Library &Library::Instance() { if (ourInstance.isNull()) { ourInstance = new Library(); }

berezovskyi commented 10 years ago

I'm not sure whether the relevant commits were made, but I've compiled the project with GCC 4.8.2 without problems. @geometer shall this issue be closed?