FreeOrion

Forums for the FreeOrion project
It is currently Sat Jun 23, 2018 8:27 am

All times are UTC




Post new topic Reply to topic  [ 7 posts ] 
Author Message
PostPosted: Sat Sep 08, 2012 4:53 am 
Offline
Space Krill

Joined: Sat Sep 08, 2012 2:35 am
Posts: 4
Hi everyone. Sorry my first post to the forum has to do with boring compilation errors. I recently checked out the FreeOrion SDK and have been attempting to build it in XCode following the instructions here:

http://www.freeorion.org/index.php/Compile_In_MacOsX

Now the requisite information for the XCode Project settings

Quote:
ADDITIONAL_SDKS =
ARCHS = i386
SDKROOT = macosx10.4
ONLY_ACTIVE_ARCH = YES
VALID_ARCHS = i386 ppc ppc64 ppc7400 ppc970 x86_64

GCC_VERSION = 4.0

MACOSX_DEPLOYMENT_TARGET = 10.6

Active Target: FreeOrion
Active Executable: FreeOrion


And my own system:

Quote:

Model Name: MacBook Pro
Model Identifier: MacBookPro8,2
Processor Name: Intel Core i7
Processor Speed: 2 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 6 MB
Memory: 4 GB

System Version: Mac OS X 10.6.8 (10K549)
Kernel Version: Darwin 10.8.0
Secure Virtual Memory: Enabled
64-bit Kernel and Extensions: Yes

Applications:
Xcode: 3.2.6 (1761)
Interface Builder: 3.2.6 (851)
Instruments: 2.7 (3017)
Dashcode: 3.0.2 (333)
SDKs:
Mac OS X:
10.4: (8S2167)
10.5: (9L31a)
10.6: (10M2518)


The error I'm getting on compile has to do with placeholder (template) classes in AppInterface.cpp. Specifically:

Quote:
#ifdef FREEORION_BUILD_SERVER
return GetUniverse().Objects().Object<T>(object_id); [!] expected primary-expression before '<' token


My understanding of templates in C++ is not perfect, but something (probably in my settings) is causing the compiler to interpret '<' as a less-than token rather than as a template identifier. What am I missing?

Cheers, and Thanks


Top
 Profile  
 
PostPosted: Sat Sep 08, 2012 6:04 am 
Offline
Programming, Design, Admin
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 12223
Location: Munich
The C++ IRC channel suggests that for some reason the compiler in your case doesn't know about the Object function... So, can you try adding
Code:
#include "../universe/ObjectMap.h"
near the top of AppInterface.cpp

If that doesn't work, and even if it does, can you update your XCode version?


Top
 Profile  
 
PostPosted: Sun Sep 09, 2012 2:52 am 
Offline
Space Krill

Joined: Sat Sep 08, 2012 2:35 am
Posts: 4
Thanks. It's a bit difficult to locate XCode 4.2 for OSX Snow Leopard; it actually requires that one be a paying registered apple developer. Perhaps the wiki should reflect that the SDK requires XCode 4 or greater?

At any rate, as you undoubtedly predicted, simply updating XCode results in novel compilation errors. Here, again, are the specs for XCode:

Quote:
ARCHS = i386
SDKROOT = macosx10.6
VALID_ARCHS = i386 x86_64
GCC_VERSION = 4.0
MACOSX_DEPLOYMENT_TARGET = 10.6


I'm getting the error:

Quote:
Binding of reference to type 'token_value_type' (aka 'boost::spirit::unused_type') to a value of type 'const boost::spirit::unused_type' drops qualifiers


Thanks.


Top
 Profile  
 
PostPosted: Sun Sep 09, 2012 3:31 am 
Offline
Programming, Design, Admin
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 12223
Location: Munich
Whatever the problem is that's causing that, I don't think it's specific to something in FreeOrion code... It's definitely not something I can fix, especially without any information abuout what code is leading to the error.

Google a bit perhaps? Try updating the Boost version? (I don't know what comes with the OSX SDK). Make sure you're building against the version that's in the SDK and not some other version on your computer?


Top
 Profile  
 
PostPosted: Sun Sep 09, 2012 3:48 am 
Offline
Space Krill

Joined: Sat Sep 08, 2012 2:35 am
Posts: 4
Geoff the Medio wrote:
Whatever the problem is that's causing that, I don't think it's specific to something in FreeOrion code... It's definitely not something I can fix, especially without any information abuout what code is leading to the error.

Google a bit perhaps? Try updating the Boost version? (I don't know what comes with the OSX SDK). Make sure you're building against the version that's in the SDK and not some other version on your computer?


I agree with your assessment. Clearly this is a rare occurrence with OS X builds of FO. I'll poke around a bit, and I'll update this thread if any resolutions are forthcoming.

Thanks for your help.


Top
 Profile  
 
PostPosted: Sun Sep 09, 2012 12:03 pm 
Offline
Release Manager, Design
User avatar

Joined: Wed Nov 16, 2011 12:56 pm
Posts: 4562
Location: Sol III
Hi Psilonicus,

I'm currently the main maintainer of the FreeOrion OSX SDK. I'm in the process of revising and updating the SDK, and short on time ATM, so I'm a bit behind keeping the Xcode project files updated in SVN. That means if you download the SDK now, pull the head revision of FO from SVN, you'll likely get several errors when trying to build FO.

I'll try to get that wrapped up ASAP, but until then you'll have to be a bit patient ;)

That said, you shouldn't have to update Xcode. I'm working on a MBP with specs very similar to your own, and identical OS and Xcode versions (OSX 10.6.8, Xcode 3.2.6). I've 8GB of RAM however, 4GB is the bare minimum needed to compile FO. I'm not even sure it's sufficient anymore (it was a few months ago, but I didn't check since), so that might become a problem for you.

The error you get isn't what I'd expect however. What's also strange are the settings for the compiler and sdkroot. I assume you downloaded the current SDK (here) and ran bootstrap.sh, right? (If not, then things won't work.) What's the active build configuration? You should use "Release". Don't bother with "Debug", I can't build that one even with my 8GB of RAM. "Release_LLVM" is experimental, and "Release_10_5" and "ReleaseUniversal-OLD" don't work at all.

"Base SDK" should be "Mac OS X 10.6", and "C/C++ compiler version" should be "LLVM GCC 4.2". I don't know why your sdkroot is 10.4, and your compiler apparently gcc 4.0. These settings won't work, they might be the reason for the compile error you got.

Another thing to be aware of is that you must not have boost installed on your system, as a separate boost installation gets in conflict with the one bundled with the SDK.

EDIT: I've just committed an updated Xcode project file (rev 5215). So you should be able to build FO after updating your WC to head revision.


Top
 Profile  
 
PostPosted: Sun Sep 09, 2012 4:59 pm 
Offline
Space Krill

Joined: Sat Sep 08, 2012 2:35 am
Posts: 4
Vezzra wrote:
"Base SDK" should be "Mac OS X 10.6", and "C/C++ compiler version" should be "LLVM GCC 4.2". I don't know why your sdkroot is 10.4, and your compiler apparently gcc 4.0. These settings won't work, they might be the reason for the compile error you got.


It appears I didn't carefully read the section headings on the wiki page. I'm using the suggested compiler and sdk root for the *old* Freeorion SDK. However, I only switched to these settings after the default settings failed to compile (out of memory). Sounds like I should switch back and build not-debug.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group