Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#9584 closed Bug report (rejected)

Build failure on OS X 10.6 (error: field ‘m_path’ has incomplete type)

Reported by: Mojca Miklavec Owned by:
Priority: normal Component: FileZilla Client
Keywords: Cc:
Component version: Operating system type: OS X
Operating system version: OS X 10.6

Description

The latest nightly version (2014-06-17) fails to compile on Mac OS X Snow Leopard (10.6).

This is the error:

make[2]: Entering directory `/path/to/filezilla-3.8.1/src/engine'
if /usr/bin/g++-4.2 -DHAVE_CONFIG_H -I. -I../../src/include  -I./../include -I/opt/local/include -I/opt/local/include/p11-kit-1 -I/opt/local/include  -I/path/to/wxWidgets/3.0/lib/wx/include/osx_cocoa-unicode-3.0 -I/path/to/wxWidgets/3.0/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I/opt/local/include -fpch-preprocess -I/path/to/wxWidgets/3.0/lib/wx/include/osx_cocoa-unicode-3.0 -I/path/to/wxWidgets/3.0/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -pipe -Os -arch x86_64 -Wall -g -fexceptions -MT filezilla.h.gch -MD -MP -MF ".deps/.Tpo" -c -o filezilla.h.gch filezilla.h; \
;  then mv -f ".deps/.Tpo" ".deps/.Po"; else rm -f ".deps/.Tpo"; exit 1; fi
In file included from ../../src/include/libfilezilla.h:33,
                 from filezilla.h:1:
../../src/include/serverpath.h:17: error: function definition does not declare parameters
In file included from ../../src/include/libfilezilla.h:34,
                 from filezilla.h:1:
../../src/include/commands.h:120: error: field ‘m_path’ has incomplete type
../../src/include/commands.h:151: error: field ‘m_remotePath’ has incomplete type
../../src/include/commands.h:174: error: field ‘m_path’ has incomplete type
../../src/include/commands.h: In member function ‘CServerPath CDeleteCommand::GetPath() const’:
../../src/include/commands.h:169: error: return type ‘struct CServerPath’ is incomplete
../../src/include/commands.h:169: error: ‘m_path’ was not declared in this scope
../../src/include/commands.h: At global scope:
../../src/include/commands.h:188: error: field ‘m_path’ has incomplete type
../../src/include/commands.h: In member function ‘CServerPath CRemoveDirCommand::GetPath() const’:
../../src/include/commands.h:183: error: return type ‘struct CServerPath’ is incomplete
../../src/include/commands.h:183: error: ‘m_path’ was not declared in this scope
../../src/include/commands.h: At global scope:
../../src/include/commands.h:199: error: field ‘m_path’ has incomplete type
../../src/include/commands.h: In member function ‘CServerPath CMkdirCommand::GetPath() const’:
../../src/include/commands.h:195: error: return type ‘struct CServerPath’ is incomplete
../../src/include/commands.h:195: error: ‘m_path’ was not declared in this scope
../../src/include/commands.h: At global scope:
../../src/include/commands.h:212: error: field ‘m_fromPath’ has incomplete type
../../src/include/commands.h:213: error: field ‘m_toPath’ has incomplete type
../../src/include/commands.h: In member function ‘CServerPath CRenameCommand::GetFromPath() const’:
../../src/include/commands.h:206: error: return type ‘struct CServerPath’ is incomplete
../../src/include/commands.h:206: error: ‘m_fromPath’ was not declared in this scope
../../src/include/commands.h: In member function ‘CServerPath CRenameCommand::GetToPath() const’:
../../src/include/commands.h:207: error: return type ‘struct CServerPath’ is incomplete
../../src/include/commands.h:207: error: ‘m_toPath’ was not declared in this scope
../../src/include/commands.h: At global scope:
../../src/include/commands.h:229: error: field ‘m_path’ has incomplete type
../../src/include/commands.h: In member function ‘CServerPath CChmodCommand::GetPath() const’:
../../src/include/commands.h:224: error: return type ‘struct CServerPath’ is incomplete
../../src/include/commands.h:224: error: ‘m_path’ was not declared in this scope
In file included from ../../src/include/libfilezilla.h:35,
                 from filezilla.h:1:
../../src/include/notification.h: At global scope:
../../src/include/notification.h:116: error: field ‘m_path’ has incomplete type
../../src/include/notification.h: In member function ‘const CServerPath CDirectoryListingNotification::GetPath() const’:
../../src/include/notification.h:111: error: return type ‘const struct CServerPath’ is incomplete
../../src/include/notification.h:111: error: ‘m_path’ was not declared in this scope
../../src/include/notification.h: At global scope:
../../src/include/notification.h:145: error: field ‘remotePath’ has incomplete type
In file included from ../../src/include/FileZillaEngine.h:4,
                 from ../../src/include/libfilezilla.h:36,
                 from filezilla.h:1:
../../src/include/engineprivate.h:83: error: field ‘m_lastListDir’ has incomplete type
In file included from ../../src/include/libfilezilla.h:37,
                 from filezilla.h:1:
../../src/include/directorylisting.h:69: error: field ‘path’ has incomplete type
make[2]: *** [filezilla.h.gch] Error 1
make[2]: Leaving directory `/path/to/filezilla-3.8.1/src/engine'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/path/to/filezilla-3.8.1/src'
make: *** [all-recursive] Error 1
make: Leaving directory `/path/to/filezilla-3.8.1'
Command failed:  cd "/path/to/filezilla-3.8.1" && /usr/bin/make -j8 -w all~
Exit code: 2

Full log is here (direct link).

(I didn't test earlier versions, so I don't know since when this fails to compile. If it's just too old compiler to handle FileZilla's source code, let me know, I'll try to switch the compiler.)

Change History (3)

comment:1 by Tim Kosse, 11 years ago

Resolution: rejected
Status: newclosed

FileZilla requires a C++11 compiler.

The used compiler is way way WAY too old, it does not support C++11's final keyword. Please update to a more recent compiler.

comment:2 by Mojca Miklavec, 11 years ago

No problem. Compiling FileZilla with clang 3.4 on 10.6 succeeds, it was just failing with the default compiler. (The current requirements seems to be "a bit less" than full C++11, else it would fail to compile against libstdc++ as shipped by OS X < 10.9. I'm happy that's the case.)

Thank you.

comment:3 by Tim Kosse, 11 years ago

I've added a check to configure to test for C++11 support.

Note: See TracTickets for help on using tickets.