Issues compiling Mac/Win

Questions, problems and discussion about compiling FreeOrion.

Moderator: Oberlus

Message
Author
User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Issues compiling Mac/Win

#1 Post by Vezzra »

Hi everyone,

after watching this project for years now (that is, passing by once every year or so), I decided I'll give it a try to contribute a little bit (to what I perceive as a very well designed game so far). At least, as far as RL allows it :wink:

Being a programmer I first tried to get to compile this thing. I've switched to Mac a few months ago, so I followed the instructions given on the wiki for Macs: got the new SDK for Mac you provided, did the svn-update and tried to build. Which gave me 120.000 errors or so. So I went to the forums and found in relevant postings there, that I should use Xcode4. Unfortunately, I'm on OSX 10.6, and trying to upgrade to Xcode4 via MAS wasn't possible due to the Xcode4 version delivered by MAS only working with Lion.

However, there seem to be people around here who are running Xcode4 on 10.6. So my questions now: Can you give me some hints how you did this, and how I can get Xcode 4 for 10.6? Or is there a way to get Xcode3 to compile FO? Upgrading to Lion is not an option at the moment (would break some software I need that requires Rosetta, which was dropped in Lion).

After my failed attempt to compile FO on my Mac I reactivated my old notebook (6 years old core duo, WinXP), and started over (again following instructions on the wiki): Downloaded and installed MCVC 2010 Express, downloaded the SDK for Windows, svn-update, build solution. This one went better - until I got fatal errors from the compiler complaining it ran out of heap space (and subsequently crashing). Tried the same on my Mac with WinXP running in a VM, same result. My old notebook has 2gb of ram, the VM on my Mac had 2.5gb (couldn't allocate more to the VM without crashing my Mac). Monitoring memory consumption revealed that while compiling certain modules memory consumption indeed went up to 2gb and more, until, well, you know...

Is there something obvious I'm missing? Am I doing something wrong? Or does compiling FO on Windows really require 4, 6, or even 8gb of ram?

Any hints/help would be appreciated... :)

Regards,
Vezzra

User avatar
Bigjoe5
Designer and Programmer
Posts: 2058
Joined: Tue Aug 14, 2007 6:33 pm
Location: Orion

Re: Issues compiling Mac/Win

#2 Post by Bigjoe5 »

Unfortunately, I don't remember what version of XCode I used or how I got it (though it was before Lion was released, so obviously it had support for 10.6), and I'm way too far away from the computer I used to check anything useful. All I can do is assert that versions of FO from three months ago work with 10.6 for me.
Warning: Antarans in dimensional portal are closer than they appear.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Issues compiling Mac/Win

#3 Post by Geoff the Medio »

Try building FreeOrion SVN 4471. There were some major changes starting in 4472 that are still being sorted out and which could be causing some build problems, particularly if the Mac SDK hasn't been updated, which it hasn't as far as I know.

On Windows, I've been having similar problems building the latest versions. It seems that the MSVC compiler has issues with the newly-added template code which causes it to use lots of RAM, often up to compiler limits, leading to crashes. Again, trying 4471 would probably work better.

tzlaine
Programming Lead Emeritus
Posts: 1092
Joined: Thu Jun 26, 2003 1:33 pm

Re: Issues compiling Mac/Win

#4 Post by tzlaine »

Also, there are CMake build files available for both GG and FO. You can use them to build plain old makefiles, or XCode files as well. These are what I use exclusively to do my Linux development.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#5 Post by Vezzra »

Thanks to everyone for your suggestions so far :) I'll give it a try and report on my success (or failure... :wink:)

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#6 Post by Vezzra »

Ok, here my first report:

I started with a fresh copy of the Windows SDK, updated the FreeOrion folder to svn 4471 and tried to "build solution" with MSVC2010Express. I was flooded with build errors, here a list with the first couple of errors (the complete list would be far too long):

Code: Select all

c1xx : fatal error C1083: Cannot open source file: '..\..\GG\src\WndEditor.cpp': No such file or directory

LINK : fatal error LNK1181: cannot open input file 'GiGi.lib'

LINK : fatal error LNK1181: cannot open input file 'GiGi.lib'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C3083: 'serialization': the symbol to the left of a '::' must be a type

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2039: 'access' : is not a member of 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2365: 'boost' : redefinition; previous definition was 'namespace'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2079: 'access' uses undefined class 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2433: 'access' : 'friend' not permitted on data declarations

C:\Dokumente und Einstellungen\Gernot\Eigene Dateien\FreeOrion_VS2010_SDK\Boost\include\boost_1_47\boost/checked_delete.hpp(25): error C2757: 'boost' : a symbol with this name already exists and therefore this name cannot be used as a namespace name

C:\Dokumente und Einstellungen\Gernot\Eigene Dateien\FreeOrion_VS2010_SDK\Boost\include\boost_1_47\boost/checked_delete.hpp(54): fatal error C1903: unable to recover from previous error(s); stopping compilation

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C3083: 'serialization': the symbol to the left of a '::' must be a type

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2039: 'access' : is not a member of 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2365: 'boost' : redefinition; previous definition was 'namespace'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2079: 'access' uses undefined class 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2433: 'access' : 'friend' not permitted on data declarations

C:\Dokumente und Einstellungen\Gernot\Eigene Dateien\FreeOrion_VS2010_SDK\Boost\include\boost_1_47\boost/checked_delete.hpp(25): error C2757: 'boost' : a symbol with this name already exists and therefore this name cannot be used as a namespace name

C:\Dokumente und Einstellungen\Gernot\Eigene Dateien\FreeOrion_VS2010_SDK\Boost\include\boost_1_47\boost/checked_delete.hpp(54): fatal error C1903: unable to recover from previous error(s); stopping compilation

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C3083: 'serialization': the symbol to the left of a '::' must be a type

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2039: 'access' : is not a member of 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2365: 'boost' : redefinition; previous definition was 'namespace'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2079: 'access' uses undefined class 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2433: 'access' : 'friend' not permitted on data declarations

C:\Dokumente und Einstellungen\Gernot\Eigene Dateien\FreeOrion_VS2010_SDK\Boost\include\boost_1_47\boost/checked_delete.hpp(25): error C2757: 'boost' : a symbol with this name already exists and therefore this name cannot be used as a namespace name

C:\Dokumente und Einstellungen\Gernot\Eigene Dateien\FreeOrion_VS2010_SDK\Boost\include\boost_1_47\boost/checked_delete.hpp(54): fatal error C1903: unable to recover from previous error(s); stopping compilation

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C3083: 'serialization': the symbol to the left of a '::' must be a type

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2039: 'access' : is not a member of 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2365: 'boost' : redefinition; previous definition was 'namespace'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2079: 'access' uses undefined class 'boost'

c:\dokumente und einstellungen\gernot\eigene dateien\freeorion_vs2010_sdk\freeorion\client\../Empire/EmpireManager.h(76): error C2433: 'access' : 'friend' not permitted on data declarations

C:\Dokumente und Einstellungen\Gernot\Eigene Dateien\FreeOrion_VS2010_SDK\Boost\include\boost_1_47\boost/thread/exceptions.hpp(25): error C2757: 'boost' : a symbol with this name already exists and therefore this name cannot be used as a namespace name

...
Looks like the current version of the SDK does not work with 4471 any more, or am I missing something obvious...? Or is there anything else wrong?

EDIT: I'll going to try some different things, let's see how that turns out...

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#7 Post by Vezzra »

Report number two:

This time I tried cmake on my Mac. Result:

Code: Select all

mackie:build gernot$ cmake -G Xcode ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler using: Xcode
-- Check for working C compiler using: Xcode -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler using: Xcode
-- Check for working CXX compiler using: Xcode -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Build platform: macos
-- Could NOT find Boost
CMake Error at CMakeLists.txt:62 (message):
  Boost libraries (>=1.44.0) not found


-- Configuring incomplete, errors occurred!
Boost is indeed missing, contrary to the Windows SDK the Mac SDK hasn't any boost folders anywhere (or at least I didn't see any). Can I just copy those from the Win SDK and place them in the corresponding location in the Mac SDK? Or do I have to do something else for cmake to find boost?

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#8 Post by Vezzra »

Report#3: cmake on windows. Doesn't find boost either. Obviously I'm doing something fundamentally wrong here. Have to figure that out. However, if anyone has some helpful hints which could point me in the right direction, I won't complain... ;)

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#9 Post by Vezzra »

Report#4: another try with cmake on my Mac

I installed boost on my system, and this time cmake found the boost libraries, hooray :)

So I went on trying to build Xcode files for FO, got the complaint that cmake couldn't find the GG library, remembered that I read somewhere that GG needs to be build first and tried to do that.

First I tried building Xcode files and building GG with Xcode. cmake succeeded in building the Xcode files, but trying to build GG with the resulting Xcode project failed with 60 errors.

Then I tried the "plain old makefile" option, with the following results. cmake produced this output:

Code: Select all

mackie:build gernot$ cmake -G "Unix Makefiles" ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Build platform: macos
-- Boost version: 1.47.0
-- Found the following Boost libraries:
--   date_time
--   filesystem
--   signals
--   system
--   thread
-- Could NOT find JPEG (missing:  JPEG_LIBRARY JPEG_INCLUDE_DIR) 
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.3")
-- Found PNG: /usr/X11R6/lib/libpng.dylib 
-- Could NOT find TIFF (missing:  TIFF_LIBRARY TIFF_INCLUDE_DIR) 
-- Found OpenGL: /System/Library/Frameworks/OpenGL.framework 
-- Found Freetype: /usr/X11R6/lib/libfreetype.dylib 
-- Configuring libltdl using "libltdl/configure" ...
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/configure: line 877: test: /Users/gernot/software: binary operator expected
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/configure: line 883: test: /Users/gernot/software: binary operator expected
configure: error: sources are in /Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl, but `cd /Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl' does not work
-- Configuring GiGi
Error copying file (if different) from "/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/config.h" to "/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/GG/ltdl_config.h".
-- Configuring GiGiSDL
     Warning: SDL could not be found.  Disabling the SDL build.
-- Configuring GiGiOgre
-- checking for one of the modules 'OGRE'
     Warning: Ogre could not be found.  Disabling the Ogre build.
-- Configuring Ogre OIS Input Plugin
-- checking for one of the modules 'OIS'
     Warning: OIS could not be found.  Disabling the OIS build.
-- Configuring Tests
-- Boost version: 1.47.0
-- Found the following Boost libraries:
--   unit_test_framework
-- Configuring Tutorials
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
   Warning: Doxygen could not be found.  Disabling the documentation build.
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/build
Despite the error messages I tried the build via "make", which failed as was to be expected, output:

Code: Select all

mackie:build gernot$ make
Scanning dependencies of target GiGi
[  1%] Building CXX object src/CMakeFiles/GiGi.dir/AdamDlg.cpp.o
[  2%] Building CXX object src/CMakeFiles/GiGi.dir/AdamGlue.cpp.o
[  3%] Building CXX object src/CMakeFiles/GiGi.dir/AdamParser.cpp.o
[  4%] Building CXX object src/CMakeFiles/GiGi.dir/AlignmentFlags.cpp.o
[  6%] Building CXX object src/CMakeFiles/GiGi.dir/Base.cpp.o
[  7%] Building CXX object src/CMakeFiles/GiGi.dir/BrowseInfoWnd.cpp.o
[  8%] Building CXX object src/CMakeFiles/GiGi.dir/Button.cpp.o
[  9%] Building CXX object src/CMakeFiles/GiGi.dir/ClrConstants.cpp.o
[ 10%] Building CXX object src/CMakeFiles/GiGi.dir/Control.cpp.o
[ 12%] Building CXX object src/CMakeFiles/GiGi.dir/Cursor.cpp.o
[ 13%] Building CXX object src/CMakeFiles/GiGi.dir/DrawUtil.cpp.o
[ 14%] Building CXX object src/CMakeFiles/GiGi.dir/DropDownList.cpp.o
[ 15%] Building CXX object src/CMakeFiles/GiGi.dir/DynamicGraphic.cpp.o
[ 17%] Building CXX object src/CMakeFiles/GiGi.dir/Edit.cpp.o
[ 18%] Building CXX object src/CMakeFiles/GiGi.dir/EventPump.cpp.o
[ 19%] Building CXX object src/CMakeFiles/GiGi.dir/EveParser.cpp.o
[ 20%] Building CXX object src/CMakeFiles/GiGi.dir/EveLayout.cpp.o
[ 21%] Building CXX object src/CMakeFiles/GiGi.dir/ExpressionParser.cpp.o
[ 23%] Building CXX object src/CMakeFiles/GiGi.dir/ExpressionWriter.cpp.o
[ 24%] Building CXX object src/CMakeFiles/GiGi.dir/Font.cpp.o
[ 25%] Building CXX object src/CMakeFiles/GiGi.dir/GroupBox.cpp.o
[ 26%] Building CXX object src/CMakeFiles/GiGi.dir/GUI.cpp.o
[ 28%] Building CXX object src/CMakeFiles/GiGi.dir/Layout.cpp.o
[ 29%] Building CXX object src/CMakeFiles/GiGi.dir/Lexer.cpp.o
[ 30%] Building CXX object src/CMakeFiles/GiGi.dir/ListBox.cpp.o
[ 31%] Building CXX object src/CMakeFiles/GiGi.dir/Menu.cpp.o
[ 32%] Building CXX object src/CMakeFiles/GiGi.dir/MultiEdit.cpp.o
[ 34%] Building CXX object src/CMakeFiles/GiGi.dir/PluginInterface.cpp.o
[ 35%] Building CXX object src/CMakeFiles/GiGi.dir/PtRect.cpp.o
[ 36%] Building CXX object src/CMakeFiles/GiGi.dir/ReportParseError.cpp.o
[ 37%] Building CXX object src/CMakeFiles/GiGi.dir/Scroll.cpp.o
[ 39%] Building CXX object src/CMakeFiles/GiGi.dir/StaticGraphic.cpp.o
[ 40%] Building CXX object src/CMakeFiles/GiGi.dir/StyleFactory.cpp.o
[ 41%] Building CXX object src/CMakeFiles/GiGi.dir/TabWnd.cpp.o
[ 42%] Building CXX object src/CMakeFiles/GiGi.dir/TextControl.cpp.o
[ 43%] Building CXX object src/CMakeFiles/GiGi.dir/Texture.cpp.o
[ 45%] Building CXX object src/CMakeFiles/GiGi.dir/Timer.cpp.o
[ 46%] Building CXX object src/CMakeFiles/GiGi.dir/UnicodeCharsets.cpp.o
[ 47%] Building CXX object src/CMakeFiles/GiGi.dir/Wnd.cpp.o
[ 48%] Building CXX object src/CMakeFiles/GiGi.dir/WndEvent.cpp.o
[ 50%] Building CXX object src/CMakeFiles/GiGi.dir/ZList.cpp.o
[ 51%] Building CXX object src/CMakeFiles/GiGi.dir/dialogs/ColorDlg.cpp.o
[ 52%] Building CXX object src/CMakeFiles/GiGi.dir/dialogs/FileDlg.cpp.o
[ 53%] Building CXX object src/CMakeFiles/GiGi.dir/dialogs/ThreeButtonDlg.cpp.o
[ 54%] Building C object src/CMakeFiles/GiGi.dir/__/libltdl/ltdl.c.o
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:29:22: error: config.h: No such file or directory
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:221: error: ‘malloc’ undeclared here (not in a function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:223: error: ‘realloc’ undeclared here (not in a function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:225: error: ‘free’ undeclared here (not in a function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘rpl_strdup’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:272: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:275: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘rpl_memcpy’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:392: warning: dereferencing ‘void *’ pointer
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:392: warning: dereferencing ‘void *’ pointer
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:392: error: invalid use of void expression
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘rpl_memmove’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:417: warning: dereferencing ‘void *’ pointer
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:417: warning: dereferencing ‘void *’ pointer
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:417: error: invalid use of void expression
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:422: warning: dereferencing ‘void *’ pointer
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:422: warning: dereferencing ‘void *’ pointer
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:422: error: invalid use of void expression
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: At top level:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:560: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rpl_argz_append’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:564: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rpl_argz_append’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:569: error: expected identifier or ‘(’ before ‘{’ token
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:602: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rpl_argz_create_sep’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:606: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rpl_argz_create_sep’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:611: error: expected identifier or ‘(’ before ‘{’ token
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:665: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rpl_argz_insert’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:669: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rpl_argz_insert’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:674: error: expected identifier or ‘(’ before ‘{’ token
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:857: error: ‘LTDL_OBJDIR’ undeclared here (not in a function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_estrdup’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:1032: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘presym_add_symlist’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2012: warning: incompatible implicit declaration of built-in function ‘memset’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: At top level:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2144: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2174: warning: ‘struct direct’ declared inside parameter list
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2174: warning: its scope is only this definition or declaration, which is probably not what you want
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘tryall_dlopen_module’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2457: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2479: warning: incompatible implicit declaration of built-in function ‘sprintf’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘canonicalize_path’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2555: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘argzize_path’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2614: error: ‘error_t’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2614: error: (Each undeclared identifier is reported only once
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2614: error: for each function it appears in.)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2614: error: expected ‘;’ before ‘error’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2620: error: ‘error’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2624: error: ‘ENOMEM’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘foreach_dirinpath’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2652: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2688: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘find_file_callback’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2724: error: ‘FILE’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2724: error: ‘pfile’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2724: error: invalid operands to binary * (have ‘const char *’ and ‘int’)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2724: error: expected expression before ‘)’ token
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2724: error: invalid operands to binary * (have ‘const char *’ and ‘int’)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2731: error: assignment of read-only location
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2733: warning: initialization discards qualifiers from pointer target type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: At top level:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2746: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2751: error: expected identifier or ‘(’ before ‘{’ token
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘find_handle_callback’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2766: error: ‘R_OK’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘trim’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2989: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3000: warning: incompatible implicit declaration of built-in function ‘strncpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘try_dlopen’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3053: warning: incompatible implicit declaration of built-in function ‘memset’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3080: warning: assignment discards qualifiers from pointer target type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3092: warning: incompatible implicit declaration of built-in function ‘strncpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3107: error: ‘FILE’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3107: error: ‘file’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3107: error: invalid operands to binary * (have ‘const char *’ and ‘const char *’)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3161: warning: assignment makes pointer from integer without a cast
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3214: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3275: warning: assignment discards qualifiers from pointer target type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3308: warning: incompatible implicit declaration of built-in function ‘memset’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3346: warning: incompatible implicit declaration of built-in function ‘memset’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3355: warning: passing argument 1 of ‘find_handle’ makes pointer from integer without a cast
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3367: error: ‘NULL’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3367: warning: assignment from incompatible pointer type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_dlopenext’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3452: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3453: warning: assignment discards qualifiers from pointer target type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3471: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3472: warning: incompatible implicit declaration of built-in function ‘strcat’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_argz_insert’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3529: error: ‘error_t’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3529: error: expected ‘;’ before ‘error’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3531: error: ‘error’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3535: error: ‘ENOMEM’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_argz_insertdir’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3578: error: argument ‘dp’ doesn’t match prototype
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:2174: error: prototype declaration
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3590: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3591: error: dereferencing pointer to incomplete type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3591: error: request for member ‘d_name’ in something not a structure or union
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3591: error: dereferencing pointer to incomplete type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3591: error: request for member ‘d_namlen’ in something not a structure or union
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3591: error: invalid operands to binary + (have ‘const char *’ and ‘const char *’)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3591: warning: assignment discards qualifiers from pointer target type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3596: error: dereferencing pointer to incomplete type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3596: error: request for member ‘d_name’ in something not a structure or union
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3607: error: dereferencing pointer to incomplete type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3607: error: request for member ‘d_name’ in something not a structure or union
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3616: error: dereferencing pointer to incomplete type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3616: error: request for member ‘d_name’ in something not a structure or union
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3624: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3625: warning: incompatible implicit declaration of built-in function ‘strcat’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3626: warning: incompatible implicit declaration of built-in function ‘strncat’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3626: error: dereferencing pointer to incomplete type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3626: error: request for member ‘d_name’ in something not a structure or union
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘list_files_by_dir’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3644: error: ‘DIR’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3644: error: ‘dirp’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3644: error: invalid operands to binary * (have ‘const char *’ and ‘const char *’)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3657: warning: assignment makes pointer from integer without a cast
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3658: error: dereferencing pointer to incomplete type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3658: error: request for member ‘d_name’ in something not a structure or union
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3659: warning: passing argument 4 of ‘lt_argz_insertdir’ from incompatible pointer type
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_dlforeachfile’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3737: warning: passing argument 1 of ‘foreach_dirinpath’ makes pointer from integer without a cast
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_dlsym’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3850: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3877: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3878: warning: incompatible implicit declaration of built-in function ‘strcat’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3882: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3885: warning: incompatible implicit declaration of built-in function ‘strcat’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3904: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3905: warning: incompatible implicit declaration of built-in function ‘strcat’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3909: warning: incompatible implicit declaration of built-in function ‘strcpy’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_dlerror’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:3929: error: ‘NULL’ undeclared (first use in this function)
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_dlinsertsearchdir’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:4032: warning: incompatible implicit declaration of built-in function ‘strlen’
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c: In function ‘lt_dlsetsearchpath’:
/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/ltdl.c:4065: warning: incompatible implicit declaration of built-in function ‘strlen’
make[2]: *** [src/CMakeFiles/GiGi.dir/__/libltdl/ltdl.c.o] Error 1
make[1]: *** [src/CMakeFiles/GiGi.dir/all] Error 2
make: *** [all] Error 2
I have to admit that I'm obviously out of my league here :( If trying to build FO already proves to be that kind of challenge, I wonder how I'm going to get any coding done... but I don't want to give up so easily ;)

I need to give it a rest for now and try again in a few days. In the meantime, if someone has some helpful insights for me, that would be cool 8)

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Issues compiling Mac/Win

#10 Post by Geoff the Medio »

Vezzra wrote:Looks like the current version of the SDK does not work with 4471 any more, or am I missing something obvious...? Or is there anything else wrong?
Are you using the MSVC 2010 solution from SVN, or are you generating one with CMake?

If you're using the SVN solution files, have you somehow downloaded FreeOrion without GG within it? It should come automatically, and the MSVC project files in SVN assume it's in the default location. If you're getting those errors with the SVN files, then I have no idea what you're doing to do that... Maybe try re-download the SDK and then updating from SVN.

If you're using CMake solutions, you need to build GG first and separately, with its own solution generated by CMake. Whether you're doing that, I'm not sure, as there appear to be compile errors related to GG not finding files...? Regardless, you appear to not be pointing CMake to the right Boost location on Windows. Don't just expect it to do so if using the SDK to get Boost since Boost hasn't been installed using its own installer, so there are likely some environment variable or other similar settings not set as they would be by the installer. You'll need to manually edit the search locations after running "ccmake .". That said, if you're building on Windows, there's no reason to be using CMake to generate a solution; the solution in SVN should work fine.

For OSX, there's probably also need to manually specify the Boost location if generating an XCode project with CMake. The XCode project file in SVN probably won't work with the latest SVN, as several source files have been added or removed since it was updated.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#11 Post by Vezzra »

Geoff the Medio wrote:
Vezzra wrote:Looks like the current version of the SDK does not work with 4471 any more, or am I missing something obvious...? Or is there anything else wrong?
Are you using the MSVC 2010 solution from SVN, or are you generating one with CMake?
Well, in my first attempt which you are referring to here I used the MSVC 2010 solution from SVN. I started this attempt with a "clean slate":
Vezzra wrote:I started with a fresh copy of the Windows SDK, updated the FreeOrion folder to svn 4471 and tried to "build solution" with MSVC2010Express.
The point is, when I tried to build FO before with the svn head revision, GG build just fine - the troubles then were the compiler crashing due to extremly high memory consumption. After that I completely deleted the FO SDK folder, put a fresh copy of the SDK in place, did the svn-update again, this time to revision 4471 (as you had suggested), launched the build process exactly as before, with the result that GG failed to build.
Geoff the Medio wrote:If you're using the SVN solution files, have you somehow downloaded FreeOrion without GG within it? It should come automatically, and the MSVC project files in SVN assume it's in the default location.
No, GG was where it shoud be. I watched the build process, and I saw GG building nicely up to this error message:

Code: Select all

c1xx : fatal error C1083: Cannot open source file: '..\..\GG\src\WndEditor.cpp': No such file or directory
Consequently, GG failed to build, and I assume that resulted in the errors that showed up when building freeorion, freeoriond and freeorionca. If GG was missing, the build process certainly would have failed immediately, wouldn't it?

I didn't get this error message with svn head revision, only with rev 4471. So my first guess would be that this is somehow related to the different revisions.
Geoff the Medio wrote:If you're getting those errors with the SVN files, then I have no idea what you're doing to do that... Maybe try re-download the SDK and then updating from SVN.
Well... I didn't do anything besides downloading the SDK, doing the svn-update, opening the MSVC 2010 Express solution file in MSVC 2010 Express and do "build solution". Maybe I've messed up one of the steps somehow (well, not maybe, actually I must have messed up, otherwise it would work), I just can't think of anything right now... :?

I tried cmake on Win only briefly. After it didn't find boost, I didn't give it another try yet, and as you said, it shouldn't be necessary anyway.
Geoff the Medio wrote:For OSX, there's probably also need to manually specify the Boost location if generating an XCode project with CMake. The XCode project file in SVN probably won't work with the latest SVN, as several source files have been added or removed since it was updated.
I solved this problem by downloading and installing the boost package from boost.org (version 1.47, as it seems to be the one you are currently using). After that, cmake had no problems finding the boost libraries, however, I ran into problems trying to build GG - see my other posts.

Well, I think I need to have a nights rest (or maybe two or three nights rest), before I try again ;) In my experience, if you give it enough time and thoughts, you'll eventually come up with ideas how to try things differently, and one of them usually gets you what you want :mrgreen: I've just to keep trying...

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#12 Post by Vezzra »

Looking at the error messages I noticed that cmake seems to have problems with path names which contain white spaces. I'll correct that issue and give it another try - but not today, that's for tomorrow. ;)

I will post the results...

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Issues compiling Mac/Win

#13 Post by Geoff the Medio »

Vezzra wrote:[On Windows with SVN 4471] I watched the build process, and I saw GG building nicely up to this error message:

Code: Select all

c1xx : fatal error C1083: Cannot open source file: '..\..\GG\src\WndEditor.cpp': No such file or directory
That file was removed from the build in this commit, which is after 4471, so that might be the problem. Could you remove it yourself from the GiGi project, or update just the FreeOrion SVN GiGi project files (not the rest of the FreeOrion code or GiGi code) to 4475?
Vezzra wrote:[On OSX] Looking at the error messages I noticed that cmake seems to have problems with path names which contain white spaces.
Error copying file (if different) from "/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/config.h" to "/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/GG/ltdl_config.h".
That's probably the cause of the subsequent errors building GiGi, as you noted. I'll email tzlaine about it... perhaps he can comment. You might try again without spaces in the relevant directory names, though...

tzlaine
Programming Lead Emeritus
Posts: 1092
Joined: Thu Jun 26, 2003 1:33 pm

Re: Issues compiling Mac/Win

#14 Post by tzlaine »

Geoff the Medio wrote:
Vezzra wrote:[On OSX] Looking at the error messages I noticed that cmake seems to have problems with path names which contain white spaces.
Error copying file (if different) from "/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/libltdl/config.h" to "/Users/gernot/software projekte/freeorion-sdk/FreeOrion/GG/GG/ltdl_config.h".
That's probably the cause of the subsequent errors building GiGi, as you noted. I'll email tzlaine about it... perhaps he can comment. You might try again without spaces in the relevant directory names, though...
Sorry, that's something I cannot fix. I'm using the autotools "configure" script that comes with the ltdl sources. That's not a CMake issue, or a Make issue, it's an autotools one. You'll just have to build GG somewhere without whitespaces in the path.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Issues compiling Mac/Win

#15 Post by Vezzra »

Report#5: After several days of struggle I'm happy to anounce my first successful attempts to build FO (svn rev 4471) on both Mac and Win - big thanks for your advice, it definitely pointed me in the right directions :mrgreen:
Geoff the Medio wrote:That file was removed from the build in this commit, which is after 4471, so that might be the problem. Could you remove it yourself from the GiGi project, or update just the FreeOrion SVN GiGi project files (not the rest of the FreeOrion code or GiGi code) to 4475?
I tried that (updating GG project files to 4475), and it indeed solved the issue with this file (WndEditor.cpp). However, with the GG project files updated other issues surfaced, apparently there were some changes to serialization functions in GG which caused the build process to fail again.

Obviously it wouldn't be so easy to get 4471 to build with the current GG rev, so I tried the other way round: I figured out which svn rev of GG was the current one when FO svn 4471 has been commited and should therefore work with 4471 (by examining the build errors and looking at the commit dates and messages), which was GG svn rev 1068.

When I reverted the GG folder to svn 1068 (and the GG project files back to 4471), the build process on Win went smoothly - hooray! :D

Mac was not so easy, there I had to solve the following issues:
  • Path names with white spaces: not good :? Although that can be solved by enclosing ALL search path names in the build configurations with double quotes. That was done partially, but not everywhere, and that caused havoc in my case (responsible for well over 100.000 build errors... ;)). Solved that by adding the missing double quotes *and* by ensuring that the FO SDK was placed in a location with no path names with white spaces. Redundant, I know, but better save than sorry ;)
  • Boost package installed seperately on your system: not good :? Apparently, the system SDK folders (which contain a link to /usr/local/lib, where the boost libraries reside) are searched for libraries first, and that will cause the linker to fail if the boost libraries installed there are not build for the exact same architecture as the architecture set in the build configuration (which was the case on my system), contrary to the boost libraries provided by the FO Mac SDK. Solved that by deleting all boost files in /usr/local
  • Had to delete GG/slider.cpp from the Xcode project. Apparently this file was obsolet and has been deleted in previous commits, but not removed from the Xcode project, which caused building GG to fail.
  • Had to add universe/EffectAccounting.h, universe/EffectAccounting.cpp, universe/ObjectMap.h, universe/ObjectMap.cpp to the Xcode project. These files missing in the Xcode project caused the linker to fail (144 "unknown symbol" errors).
After fixing all these issues, FO finally build successfully. For the records: I started with the Mac SDK provided by night and ran the build with Xcode3 on OSX 10.6. So, if night is reading this: Your SDK works with Xcode3 (after applying the fixes mentioned above), at least for FO 4471 and GG 1068.

I suggest incorporating these fixes into the Mac SDK, also adding warnings to the wiki that path names to the Mac SDK should not contain white spaces and there should be no seperate install of the boost package on your system :)

Ok, and now to building the head revision... 8)

Thanks again for the help! :D

Post Reply