Jump to content

Mac Osx Install Of 0Ad


Quacker
 Share

Recommended Posts

Hey chums,

I'm geeking out over here loving actually compiling something. I think this is the first time I've ever really used Terminal...like, ever.

Anywho, something that needs to be added to this page:

http://trac.wildfiregames.com/wiki/BuildInstructions#Unix

is a link right under "Install Apple's XCode for your system" pointing the user to also install Java Developer Package, linked here:

http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719

The developer package is required for the sudo port install of a couple items, specifically during the libsdl and wxWidgets port installs.

Cheers. Oh and I'm also looking at creating a package installer to put up on the website for the alpha. I'll let you know how it goes. I'm not a developer by any means (as one could tell from my Terminal comment), but I've got a little know-how.

edit - sorry Mod, I just realized there's a forum for 0AD problems and such. Feel free to move it in lieu of my blindness!

edit2 - a packaged installer has already been made and linked to on another thread. Here's the link, if someone wants to update the main website with it:

http://www.xenosoft.de/test/0ad-macosx-snow-leopard-r3.dmg.zip

Edited by Quacker
Link to comment
Share on other sites

Whew this install process is a headache. I'm using TeamViewer from work to access my home computer, trying to compile this thing.

For the MacOSX install, it mentions on this page about downloading a couple of files. Are those to then overwrite the ones from SVN in the 0ad folder? The documentation on it all is a) confusing and B) minor. I'm doing some trial and error, but if someone knows off-hand, that'd be great.

Snow Leopard 10.6.6

edit- did the whole "search the forum, stupid" and found this:

http://www.wildfiregames.com/forum/index.php?showtopic=14181&st=0&p=214983&hl=+compiling%20+mac&fromsearch=1entry214983

So i'm seeing what I can do. My original post still stands.

Edited by Quacker
Link to comment
Share on other sites

Ok, so I've compiled this beast after much difficulty, and followed this to ensure latest version:

cd 0ad
svn up
cd build/workspaces
./update-workspaces.sh
cd gcc
make CONFIG=Release clean
make CONFIG=Release -j3

but when I do this:

cd ../../../binaries/system
./test
./pyrogenesis

It just returns

Jordan-Quackenbushs-Computer:gcc thequacker87$ cd /Users/thequacker87/0ad
Jordan-Quackenbushs-Computer:0ad thequacker87$ cd binaries/system
Jordan-Quackenbushs-Computer:system thequacker87$ ./test
-bash: ./test: No such file or directory
Jordan-Quackenbushs-Computer:system thequacker87$ ./pyrogenesis
-bash: ./pyrogenesis: No such file or directory
Jordan-Quackenbushs-Computer:system thequacker87

What am I doing wrong? Everything looked like it went well, no issues on the compile that I could see.

Link to comment
Share on other sites

Also, I ran into some hang-ups because I'm on a 64-bit Mac, so can someone implement this into the build instructions:

other sudo port install necessaries, in this order to be added under the current list:


zlib
openssl
cmake

gperf
libiconv
(install libdevil from the link that's already on the build instructions site)
gcc43

gcc42 doesn't work with snow leopard, use gcc43


ncursesw
ncurses
expat
gettext

pkgconfig
xorg-libXdmcp
xorg-libXau
xorg-libXcb
xorg-libX11
xorg-libXext
xrender
xorg-libXrandr
libsdl
libpng
jpeg
tiff
libsdl_image

Edited by Quacker
Link to comment
Share on other sites

If anyone has any ideas, I'd sure appreciate it. I know I'm like quintuplet posting, but I'm really trying to figure this thing out. Everything seems to follow the make process fine, but it won't launch anything. In the build/systems folder, I have these test/pyro files:


pyrogenesis.exe.config
pyrogenesis.exe
pyrogenesis.pdb

test_dbg.exe.config

Link to comment
Share on other sites

Sorry you haven't had a reply yet Quacker, none of the team have much experience compiling on a Mac. Can anyone help?

Kimball has been able to compile I believe, and there is some related, albeit not very helpful, discussion here: http://www.wildfiregames.com/forum/index.php?showtopic=14181. Philip should be able to offer more help, but I believe he's busy until the weekend, so until then I'm afraid there's no one who can offer much help.

Another topic on building on Mac: http://www.wildfiregames.com/forum/index.php?showtopic=13327 not sure how helpful it is either, but every little piece might help a bit.

(In related news, there's work on upgrading premake to the latest version, which might not solve these problems, but which if nothing else should make some things easier. By supporting Xcode better it should make it easier for Mac developers to work on the game, which in the long term should help solve these problems. Doesn't help much at the moment, but should at least offer some hope for the future.)

Link to comment
Share on other sites

Yeah, I talked to Kimball, and he said he had a bunch of programmers helping him do it. Though he did recommend restarting holding down "6" and "4". which apparently forces a 64-bit boot up, so I'm going to try that today. I'm doing this all over good ole Teamviewer from work, as I don't have time to sit and watch the compiling :)

Thanks for the thread links, and I've read a couple of others around the forums as well, along with some google searches.

There are two different dmg packages floating around, one from Alpha 2 and one from current Alpha rev 8832 (iirc), but neither of these allow for svn updates, which is really what I want to accomplish. I'll give Kimball's idea a shot and see where it gets me today.

I guess the really confusing part to me is that after I follow all of the instructions to a "t", it just says that ./test and ./pyrogenesis don't exist (and rather there's an .exe in the folder, which doesn't help my mac out much...

Edited by Quacker
Link to comment
Share on other sites

Yeah, I talked to Kimball, and he said he had a bunch of programmers helping him do it. Though he did recommend restarting holding down "6" and "4". which apparently forces a 64-bit boot up, so I'm going to try that today. I'm doing this all over good ole Teamviewer from work, as I don't have time to sit and watch the compiling :)

Thanks for the thread links, and I've read a couple of others around the forums as well, along with some google searches.

There are two different dmg packages floating around, one from Alpha 2 and one from current Alpha rev 8832 (iirc), but neither of these allow for svn updates, which is really what I want to accomplish. I'll give Kimball's idea a shot and see where it gets me today.

I guess the really confusing part to me is that after I follow all of the instructions to a "t", it just says that ./test and ./pyrogenesis don't exist (and rather there's an .exe in the folder, which doesn't help my mac out much...

The .exe is the autobuilt one that comes with SVN, making life easier for Windows users, but yeah, that doesn't help Mac users the least bit :P Hope this will get sorted out, it's really sad that it's so hard to get the game running on Mac.

Link to comment
Share on other sites

So then when is the mac executable "formed"? during the "make CONFIG" process?

Turns out my MBP can't boot with a 64-bit kernel; it's too old. It can run 64-bit processes (Core 2 Duo processor), just not boot with said kernel. Which might be causing issues as all of the "sudo port install xxx" processes want to use x86_64 versions instead of i386. This might not be the issue, but I can't know for sure. Kimball's mac is newer (as he can boot to 64-bit kernel), and that could be why he can compile. If Philip or a programmer could shed some light, that would be helpful. Even some closure would be nice; at least pertaining to the current structure of the build.

Edited by Quacker
Link to comment
Share on other sites

(Sorry, been a bit busy and didn't get time to reply to all this before now...)

a link right under "Install Apple's XCode for your system" pointing the user to also install Java Developer Package, linked here:

http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719

Added.

For the MacOSX install, it mentions on this page about downloading a couple of files. Are those to then overwrite the ones from SVN in the 0ad folder? The documentation on it all is a) confusing and B) minor. I'm doing some trial and error, but if someone knows off-hand, that'd be great.

The LatestReleaseMac page is about downloading the latest release (i.e. alpha 3). If you use SVN then that's later than the latest release, so you don't need to download anything more :)

Jordan-Quackenbushs-Computer:gcc thequacker87$ cd /Users/thequacker87/0ad
Jordan-Quackenbushs-Computer:0ad thequacker87$ cd binaries/system
Jordan-Quackenbushs-Computer:system thequacker87$ ./test
-bash: ./test: No such file or directory
Jordan-Quackenbushs-Computer:system thequacker87$ ./pyrogenesis
-bash: ./pyrogenesis: No such file or directory
Jordan-Quackenbushs-Computer:system thequacker87

What am I doing wrong? Everything looked like it went well, no issues on the compile that I could see.

Could you try building with "make CONFIG=Release" (i.e. skip the "-j3"), and then upload the last dozen or so lines that it outputs? (It's possible that it's failing, but the error messages are hidden somewhere high in the output, because the "-j3" makes it continue a while after errors.)

other sudo port install necessaries, in this order to be added under the current list:

Hmm, that seems a lot of packages, and most of them aren't used directly by the game - they're probably used by other packages but in that case they should get installed automatically... Has anyone else had to explicitly install all these packages on OS X? (The list on the wiki worked for me some time ago.)

Link to comment
Share on other sites

When I saw you posted, I felt like God has spoken to me.

As far as those necessities go, most of them told me they had to be done because they were in i386, when it wanted x86_64. Maybe just because I have an older MBP? A lot of them were asked for when installing NVTT. I'm gonna open up this thread on my teamviewer and copy/paste the error it gave.

Later than the latest release? Haha :)

Link to comment
Share on other sites

The important word here is release ;) What's in SVN is not an official release yet :)

Aha. got it.

Ykkrosh:

../../../source/simulation2/components/CCmpAIManager.cpp:579: error: template argument 2 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: template argument 4 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: expected initializer before ‘it’
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: ‘it’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: request for member ‘end’ in ‘classes’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp: In function ‘void RegisterComponentType_AIManager(CComponentManager&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:588: error: ‘CID_AIManager’ was not declared in this scope
/opt/local/include/boost/system/error_code.hpp: At global scope:
/opt/local/include/boost/system/error_code.hpp:214: warning: ‘boost::system::posix_category’ defined but not used
/opt/local/include/boost/system/error_code.hpp:215: warning: ‘boost::system::errno_ecat’ defined but not used
/opt/local/include/boost/system/error_code.hpp:216: warning: ‘boost::system::native_ecat’ defined but not used
make[1]: *** [obj/simulation2_Release/CCmpAIManager.o] Error 1
make: *** [simulation2] Error 2

Link to comment
Share on other sites

Hrm, sorry, I was sure I had replied to this, but the evidence suggests otherwise :P

The initial error is

In file included from ../../../source/simulation2/components/CCmpAIManager.cpp:21:
../../../source/simulation2/components/ICmpAIManager.h: In static member function static int ICmpAIManager::GetInterfaceId():
../../../source/simulation2/components/ICmpAIManager.h:53: error: IID_AIManager was not declared in this scope

and I don't know how that could happen :(

The only thing I can think to try is:

Edit source/simulation2/system/Component.h line 20 (immediately after the first "#define" line) and add "#warning XXXX".

Edit source/simulation2/system/Components.h line 20 (immediately after the first "#define" line) and add "#warning YYYY".

Compile again, and post the output. Hopefully that might indicate if it's somehow failing to pick up some of those files (which is the only explanation I can imagine).

Link to comment
Share on other sites

Hrm, sorry, I was sure I had replied to this, but the evidence suggests otherwise :P

The initial error is

In file included from ../../../source/simulation2/components/CCmpAIManager.cpp:21:
../../../source/simulation2/components/ICmpAIManager.h: In static member function static int ICmpAIManager::GetInterfaceId():
../../../source/simulation2/components/ICmpAIManager.h:53: error: IID_AIManager was not declared in this scope

and I don't know how that could happen :(

The only thing I can think to try is:

Edit source/simulation2/system/Component.h line 20 (immediately after the first "#define" line) and add "#warning XXXX".

Edit source/simulation2/system/Components.h line 20 (immediately after the first "#define" line) and add "#warning YYYY".

Compile again, and post the output. Hopefully that might indicate if it's somehow failing to pick up some of those files (which is the only explanation I can imagine).

Added just the part where CCmp... begins.

CCmpAIManager.cpp
In file included from ../../../source/simulation2/components/CCmpAIManager.cpp:20:
../../../source/simulation2/system/Component.h:20:2: warning: #warning XXXX
In file included from ../../../source/simulation2/system/Component.h:22,
from ../../../source/simulation2/components/CCmpAIManager.cpp:20:
../../../source/simulation2/system/Components.h:20:2: warning: #warning YYYY
In file included from ../../../libraries/spidermonkey-tip/include-unix/release/js/jspubtd.h:47,
from ../../../libraries/spidermonkey-tip/include-unix/release/js/jsapi.h:49,
from ../../../source/scriptinterface/ScriptTypes.h:39,
from ../../../source/scriptinterface/ScriptInterface.h:25,
from ../../../source/simulation2/system/ComponentManager.h:23,
from ../../../source/simulation2/system/Component.h:23,
from ../../../source/simulation2/components/CCmpAIManager.cpp:20:
../../../libraries/spidermonkey-tip/include-unix/release/js/jsval.h:154: warning: redundant redeclaration of ‘void js_static_assert(int*)’ in same scope
../../../libraries/spidermonkey-tip/include-unix/release/js/jsval.h:120: warning: previous declaration of ‘void js_static_assert(int*)’
../../../libraries/spidermonkey-tip/include-unix/release/js/jsval.h:168: warning: redundant redeclaration of ‘void js_static_assert(int*)’ in same scope
../../../libraries/spidermonkey-tip/include-unix/release/js/jsval.h:154: warning: previous declaration of ‘void js_static_assert(int*)’
In file included from ../../../source/simulation2/components/CCmpAIManager.cpp:21:
../../../source/simulation2/components/ICmpAIManager.h: In static member function ‘static int ICmpAIManager::GetInterfaceId()’:
../../../source/simulation2/components/ICmpAIManager.h:53: error: ‘IID_AIManager’ was not declared in this scope
In file included from ../../../source/simulation2/components/CCmpAIManager.cpp:24:
../../../source/lib/timer.h: In member function ‘void TimerUnit::AddDifferenceAtomic(TimerUnit, TimerUnit)’:
../../../source/lib/timer.h:178: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from ../../../source/simulation2/components/CCmpAIManager.cpp:29:
../../../source/simulation2/components/ICmpAIInterface.h: In static member function ‘static int ICmpAIInterface::GetInterfaceId()’:
../../../source/simulation2/components/ICmpAIInterface.h:32: error: ‘IID_AIInterface’ was not declared in this scope
In file included from ../../../source/simulation2/components/CCmpAIManager.cpp:37:
../../../source/simulation2/serialization/SerializeTemplates.h: At global scope:
../../../source/simulation2/serialization/SerializeTemplates.h:117: error: expected ‘,’ or ‘...’ before ‘::’ token
../../../source/simulation2/serialization/SerializeTemplates.h:117: error: ISO C++ forbids declaration of ‘ICmpPathfinder’ with no type
../../../source/simulation2/serialization/SerializeTemplates.h:123: error: ‘ICmpPathfinder’ has not been declared
../../../source/simulation2/serialization/SerializeTemplates.h:123: error: expected ‘,’ or ‘...’ before ‘&’ token
../../../source/simulation2/serialization/SerializeTemplates.h: In member function ‘void SerializeWaypoint::operator()(ISerializer&, const char*, int)’:
../../../source/simulation2/serialization/SerializeTemplates.h:119: error: ‘value’ was not declared in this scope
../../../source/simulation2/serialization/SerializeTemplates.h: At global scope:
../../../source/simulation2/serialization/SerializeTemplates.h:117: warning: unused parameter ‘ICmpPathfinder’
../../../source/simulation2/serialization/SerializeTemplates.h: In member function ‘void SerializeWaypoint::operator()(IDeserializer&, const char*, int)’:
../../../source/simulation2/serialization/SerializeTemplates.h:125: error: ‘value’ was not declared in this scope
../../../source/simulation2/serialization/SerializeTemplates.h: At global scope:
../../../source/simulation2/serialization/SerializeTemplates.h:123: warning: unused parameter ‘Waypoint’
../../../source/simulation2/serialization/SerializeTemplates.h:133: error: ‘ICmpPathfinder’ has not been declared
../../../source/simulation2/serialization/SerializeTemplates.h:133: error: expected ‘,’ or ‘...’ before ‘&’ token
../../../source/simulation2/serialization/SerializeTemplates.h: In member function ‘void SerializeGoal::operator()(S&, const char*, int)’:
../../../source/simulation2/serialization/SerializeTemplates.h:135: error: ‘ICmpPathfinder’ was not declared in this scope
../../../source/simulation2/serialization/SerializeTemplates.h:135: error: wrong number of template arguments (1, should be 2)
../../../source/simulation2/serialization/SerializeTemplates.h:87: error: provided for ‘template<class T, T max> struct SerializeU8_Enum’
../../../source/simulation2/serialization/SerializeTemplates.h:135: error: ‘value’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp: At global scope:
../../../source/simulation2/components/CCmpAIManager.cpp:72: error: ‘ScriptRuntime’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp:72: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:239: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:239: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:239: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:239: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:239: error: template argument 2 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:247: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:247: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:247: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:247: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:247: error: template argument 2 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:280: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:280: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:280: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:428: error: ‘ScriptRuntime’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp:428: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:436: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:436: error: ‘StructuredClone’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:436: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp: In constructor ‘CAIWorker::CAIPlayer::CAIPlayer(CAIWorker&, const std::wstring&, player_id_t, const int&, boost::rand48&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:73: error: no matching function for call to ‘ScriptInterface::ScriptInterface(const char [7], const char [3], const int&)’
../../../source/scriptinterface/ScriptInterface.h:69: note: candidates are: ScriptInterface::ScriptInterface(const char*, const char*)
../../../source/scriptinterface/ScriptInterface.h:59: note: ScriptInterface::ScriptInterface(ScriptInterface&)
../../../source/simulation2/components/CCmpAIManager.cpp: In static member function ‘static void CAIWorker::CAIPlayer::PostCommand(void*, CScriptValRooted)’:
../../../source/simulation2/components/CCmpAIManager.cpp:102: error: request for member ‘push_back’ in ‘self->CAIWorker::CAIPlayer::m_Commands’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:102: error: ‘class ScriptInterface’ has no member named ‘WriteStructuredClone’
../../../source/simulation2/components/CCmpAIManager.cpp: In static member function ‘static void CAIWorker::CAIPlayer::DumpImage(void*, std::wstring, std::vector<unsigned int, std::allocator<unsigned int> >, uint32_t, uint32_t, uint32_t)’:
../../../source/simulation2/components/CCmpAIManager.cpp:140: error: ‘tex_write’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘bool CAIWorker::CAIPlayer::LoadScripts(const std::wstring&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:158: error: ‘class ScriptInterface’ has no member named ‘LoadGlobalScriptFile’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘bool CAIWorker::CAIPlayer::Initialise(bool)’:
../../../source/simulation2/components/CCmpAIManager.cpp:192: error: ‘class CScriptVal’ has no member named ‘undefined’
../../../source/simulation2/components/CCmpAIManager.cpp:208: error: no matching function for call to ‘ScriptInterface::CallConstructor(const long long unsigned int&, const long long unsigned int&)’
../../../source/scriptinterface/ScriptInterface.h:92: note: candidates are: jsval ScriptInterface::CallConstructor(jsval)
../../../source/simulation2/components/CCmpAIManager.cpp:214: error: ‘class ScriptInterface’ has no member named ‘NewObjectFromConstructor’
../../../source/simulation2/components/CCmpAIManager.cpp:217: error: ‘class CScriptVal’ has no member named ‘undefined’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CAIWorker::CAIPlayer::Run(CScriptVal)’:
../../../source/simulation2/components/CCmpAIManager.cpp:229: error: request for member ‘clear’ in ‘((CAIWorker::CAIPlayer*)this)->CAIWorker::CAIPlayer::m_Commands’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp: In constructor ‘CAIWorker::CAIWorker()’:
../../../source/simulation2/components/CCmpAIManager.cpp:251: error: ‘CreateRuntime’ is not a member of ‘ScriptInterface’
../../../source/simulation2/components/CCmpAIManager.cpp:253: error: no matching function for call to ‘ScriptInterface::ScriptInterface(const char [7], const char [3], int&)’
../../../source/scriptinterface/ScriptInterface.h:69: note: candidates are: ScriptInterface::ScriptInterface(const char*, const char*)
../../../source/scriptinterface/ScriptInterface.h:59: note: ScriptInterface::ScriptInterface(ScriptInterface&)
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CAIWorker::LoadEntityTemplates(const std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, const CParamNode*>, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, const CParamNode*> > >&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:317: error: ‘const class CParamNode’ has no member named ‘ToJSVal’
../../../source/simulation2/components/CCmpAIManager.cpp:323: error: ‘class ScriptInterface’ has no member named ‘FreezeObject’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CAIWorker::SerializeState(ISerializer&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:353: error: request for member ‘size’ in ‘((boost::shared_ptr<CAIWorker::CAIPlayer>*)((CAIWorker*)this)->CAIWorker::m_Players. std::vector<_Tp, _Alloc>::operator[] [with _Tp = boost::shared_ptr<CAIWorker::CAIPlayer>, _Alloc = std::allocator<boost::shared_ptr<CAIWorker::CAIPlayer> >](i))->boost::shared_ptr<T>::operator-> [with T = CAIWorker::CAIPlayer]()->CAIWorker::CAIPlayer::m_Commands’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:354: error: request for member ‘size’ in ‘((boost::shared_ptr<CAIWorker::CAIPlayer>*)((CAIWorker*)this)->CAIWorker::m_Players. std::vector<_Tp, _Alloc>::operator[] [with _Tp = boost::shared_ptr<CAIWorker::CAIPlayer>, _Alloc = std::allocator<boost::shared_ptr<CAIWorker::CAIPlayer> >](i))->boost::shared_ptr<T>::operator-> [with T = CAIWorker::CAIPlayer]()->CAIWorker::CAIPlayer::m_Commands’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:356: error: ‘class ScriptInterface’ has no member named ‘ReadStructuredClone’
../../../source/simulation2/components/CCmpAIManager.cpp:356: error: invalid types ‘int[size_t]’ for array subscript
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CAIWorker::Deserialize(std::istream&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:389: error: request for member ‘reserve’ in ‘((boost::shared_ptr<CAIWorker::CAIPlayer>*)((CAIWorker*)this)->CAIWorker::m_Players. std::vector<_Tp, _Alloc>::back [with _Tp = boost::shared_ptr<CAIWorker::CAIPlayer>, _Alloc = std::allocator<boost::shared_ptr<CAIWorker::CAIPlayer> >]())->boost::shared_ptr<T>::operator-> [with T = CAIWorker::CAIPlayer]()->CAIWorker::CAIPlayer::m_Commands’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:394: error: request for member ‘push_back’ in ‘((boost::shared_ptr<CAIWorker::CAIPlayer>*)((CAIWorker*)this)->CAIWorker::m_Players. std::vector<_Tp, _Alloc>::back [with _Tp = boost::shared_ptr<CAIWorker::CAIPlayer>, _Alloc = std::allocator<boost::shared_ptr<CAIWorker::CAIPlayer> >]())->boost::shared_ptr<T>::operator-> [with T = CAIWorker::CAIPlayer]()->CAIWorker::CAIPlayer::m_Commands’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:394: error: ‘class ScriptInterface’ has no member named ‘WriteStructuredClone’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘CScriptValRooted CAIWorker::LoadMetadata(const std::wstring&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:405: error: ‘class ScriptInterface’ has no member named ‘ReadJSONFile’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CAIWorker::PerformComputation()’:
../../../source/simulation2/components/CCmpAIManager.cpp:416: error: ‘class ScriptInterface’ has no member named ‘ReadStructuredClone’
../../../source/simulation2/components/CCmpAIManager.cpp: In static member function ‘static IComponent* CCmpAIManager::Allocate(ScriptInterface&, jsval)’:
../../../source/simulation2/components/CCmpAIManager.cpp:450: error: cannot allocate an object of abstract type ‘CCmpAIManager’
../../../source/simulation2/components/CCmpAIManager.cpp:444: note: because the following virtual functions are pure within ‘CCmpAIManager’:
../../../source/simulation2/system/IComponent.h:40: note: virtual void IComponent::Init(const CSimContext&, const CParamNode&)
../../../source/simulation2/system/IComponent.h:41: note: virtual void IComponent::Deinit(const CSimContext&)
../../../source/simulation2/system/IComponent.h:53: note: virtual void IComponent::Deserialize(const CSimContext&, const CParamNode&, IDeserializer&)
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘virtual void CCmpAIManager::Serialize(ISerializer&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:473: error: ‘class ISerializer’ has no member named ‘GetStream’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘virtual void CCmpAIManager::Deserialize(const CParamNode&, IDeserializer&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:480: error: ‘class IDeserializer’ has no member named ‘GetStream’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘virtual void CCmpAIManager::StartComputation()’:
../../../source/simulation2/components/CCmpAIManager.cpp:504: error: ‘class ScriptInterface’ has no member named ‘WriteStructuredClone’
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘virtual void CCmpAIManager::PushCommands()’:
../../../source/simulation2/components/CCmpAIManager.cpp:520: error: request for member ‘size’ in ‘commands. std::vector<_Tp, _Alloc>::operator[] [with _Tp = CAIWorker::SCommandSets, _Alloc = std::allocator<CAIWorker::SCommandSets>](i)->CAIWorker::SCommandSets::commands’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:523: error: ‘class ScriptInterface’ has no member named ‘ReadStructuredClone’
../../../source/simulation2/components/CCmpAIManager.cpp:523: error: invalid types ‘int[size_t]’ for array subscript
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CCmpAIManager::LoadEntityTemplates()’:
../../../source/simulation2/components/CCmpAIManager.cpp:536: error: no matching function for call to ‘ICmpTemplateManager::FindAllTemplates(bool)’
../../../source/simulation2/components/ICmpTemplateManager.h:100: note: candidates are: virtual std::vector<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > ICmpTemplateManager::FindAllTemplates()
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CCmpAIManager::LoadTerrainData(CScriptVal)’:
../../../source/simulation2/components/CCmpAIManager.cpp:555: error: ‘ICmpPathfinder’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp:555: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:555: error: invalid type in declaration before ‘(’ token
../../../source/simulation2/components/CCmpAIManager.cpp:555: error: initializer expression list treated as compound expression
../../../source/simulation2/components/CCmpAIManager.cpp:556: error: request for member ‘null’ in ‘cmpPathfinder’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:559: error: base operand of ‘->’ is not a pointer
../../../source/simulation2/components/CCmpAIManager.cpp: In member function ‘void CCmpAIManager::LoadPathfinderClasses(CScriptVal)’:
../../../source/simulation2/components/CCmpAIManager.cpp:569: error: ‘ICmpPathfinder’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp:569: error: template argument 1 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:569: error: invalid type in declaration before ‘(’ token
../../../source/simulation2/components/CCmpAIManager.cpp:569: error: initializer expression list treated as compound expression
../../../source/simulation2/components/CCmpAIManager.cpp:570: error: request for member ‘null’ in ‘cmpPathfinder’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp:578: error: ‘ICmpPathfinder’ cannot appear in a constant-expression
../../../source/simulation2/components/CCmpAIManager.cpp:578: error: template argument 2 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:578: error: template argument 4 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:578: error: invalid type in declaration before ‘=’ token
../../../source/simulation2/components/CCmpAIManager.cpp:578: error: base operand of ‘->’ is not a pointer
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: ‘ICmpPathfinder’ cannot appear in a constant-expression
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: template argument 2 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: template argument 4 is invalid
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: expected initializer before ‘it’
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: ‘it’ was not declared in this scope
../../../source/simulation2/components/CCmpAIManager.cpp:579: error: request for member ‘end’ in ‘classes’, which is of non-class type ‘int’
../../../source/simulation2/components/CCmpAIManager.cpp: In function ‘void RegisterComponentType_AIManager(CComponentManager&)’:
../../../source/simulation2/components/CCmpAIManager.cpp:588: error: ‘CID_AIManager’ was not declared in this scope
/opt/local/include/boost/system/error_code.hpp: At global scope:
/opt/local/include/boost/system/error_code.hpp:214: warning: ‘boost::system::posix_category’ defined but not used
/opt/local/include/boost/system/error_code.hpp:215: warning: ‘boost::system::errno_ecat’ defined but not used
/opt/local/include/boost/system/error_code.hpp:216: warning: ‘boost::system::native_ecat’ defined but not used
make[1]: *** [obj/simulation2_Release/CCmpAIManager.o] Error 1
make: *** [simulation2] Error 2

Link to comment
Share on other sites

Hmm, looks like it's including both of those files but then still failing to find the IID_AIManager that's defined in the second one. Still no idea why :(. Has anyone else ever had this problem, or is anyone else able to still compile successfully on OS X?

I know a couple of people (Kimball, and a couple of low-posting community members) have successfully compiled on 10.6.6, but I don't know if they're running svn updates, or just the latest released version.

Dang, not good when Phil doesn't know... :) thanks for helping me out on it...if something comes to you, I'm all ears!

Link to comment
Share on other sites

Phil,

I started at square one, just using the latest release. On ./update-workspaces.sh, I get this error:

ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [src/nvimage/libnvimage.dylib] Error 1
make[2]: *** [src/nvimage/CMakeFiles/nvimage.dir/all] Error 2
make[1]: *** [src/nvtt/CMakeFiles/nvtt.dir/rule] Error 2
make: *** [nvtt] Error 2
ERROR: NVTT build failed

Thoughts?

edit, just found this:

ld: warning: in /opt/local/lib/libpng.dylib, missing required architecture x86_64 in file
ld: warning: in /opt/local/lib/libjpeg.dylib, missing required architecture x86_64 in file
ld: warning: in /opt/local/lib/libtiff.dylib, missing required architecture x86_64 in file

So I'm gonna sudo port install those and see what I get.

Edit 2 - that fixed the build, but got another error on make CONFIG. Traced it to

Linking pyrogenesis
ld: warning: in /opt/local/lib/libSDLmain.a, missing required architecture x86_64 in file
ld: warning: in /opt/local/lib/libSDL.dylib, missing required architecture x86_64 in file
ld: warning: in /opt/local/lib/libxml2.dylib, missing required architecture x86_64 in file

so i'm sudo'ing some more libraries, which are requiring others (all the ones in that list I posted towards the top)

Edit 3 - Atlas won't make during the make CONFIG, which I know #500 said Atlas doesn't run after built, but it appears to not even build as has files for a i386 architecture only, not x64 like mine.

And with the removal of the --atlas tag in update-workspaces, another run of ./update-workspaces, and another make CONFIG, I am proud to say

COMPILING FINALLY WORKED! THE GAME RUNS!

Phil, what I think happened is that I apparently didn't sudo port install curl. It must've been skipped on the first run, and that must have done something. Sorry that that little thing caused you some headache, but that's the only thing I can think it is.

Now that I get the "latest release" to run, I'm going to try a svn update and see what I get. Might screw everything up....lol

Edited by Quacker
Link to comment
Share on other sites

Ok Phil, using the svn process, update-workspaces is fine, then on make CONFIG I get this error:

Linking pyrogenesis
Undefined symbols:
"unsigned long long ScriptInterface::ToJSVal<unsigned long>(JSContext*, unsigned long const&)", referenced from:
ConvertTLBs(ScriptInterface&, x86_x64_TLBs const*) in libengine.a(HWDetect.o)
ConvertTLBs(ScriptInterface&, x86_x64_TLBs const*) in libengine.a(HWDetect.o)
ConvertTLBs(ScriptInterface&, x86_x64_TLBs const*) in libengine.a(HWDetect.o)
ConvertTLBs(ScriptInterface&, x86_x64_TLBs const*) in libengine.a(HWDetect.o)
ConvertCaches(ScriptInterface&, x86_x64_Caches const*) in libengine.a(HWDetect.o)
ConvertCaches(ScriptInterface&, x86_x64_Caches const*) in libengine.a(HWDetect.o)
ConvertCaches(ScriptInterface&, x86_x64_Caches const*) in libengine.a(HWDetect.o)
ConvertCaches(ScriptInterface&, x86_x64_Caches const*) in libengine.a(HWDetect.o)
ConvertCaches(ScriptInterface&, x86_x64_Caches const*) in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
RunHardwareDetection() in libengine.a(HWDetect.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [../../../binaries/system/pyrogenesis.app/Contents/MacOS/pyrogenesis] Error 1
make: *** [pyrogenesis] Error 2

Any ideas?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...