Re: [Greenengine-developer] Problems
Status: Planning
Brought to you by:
jeromiya
|
From: Jeremy B. <bel...@gm...> - 2007-04-13 05:08:13
|
First of all, the Makefile should only support unixy build environments, including mingw and possibly cygwin environments, which when you install boost and cppunit put them in /usr/local/include and /usr/local/lib in the virtual filesystem they run in. So the Makefile should work as is. I did get it running ok with mingw, but in cygwin I got the same error you did. So I guess I'm having the opposite problem as you? :P (reading the link you sent) Try sending the options -enable-runtime-pseudo-reloc and -enable-extra-pe-debug and seeing if that works (or gives more information). Based on the documentation it looks like this is due to a limitation of the linker on windows with respect to DLL files. That's all I can tell so far. Their suggestions for fixing it require changes in code. The first option says it requires some special run-time features, so I don't know if those are present in mingw/cygwin. The other problem is even if those flags work, they are specific to the x86 hosted version of the linker, so it won't work on my mac (or it might give an ugly warning). If there is some way to conditionally make for different platforms, without using autoconf and such, that would be good. Oh, and the QT stuff should be limited to the IDE, which should have its own Makefile separate from the rest of the engine. So you can put in any include flags you like! :D Cheers, Jeremy PS: I may add some files to the repository just to get them on there since I'm cross-developing on my linux virtual machine, windows mingw, and my mac, and it's hard to transfer files manually every time I switch, so I'm using cvs even though they aren't done yet. InstancePool.h is done though! Nado . wrote: > Ive been running into a lot of problems getting cppunit up and running > under windows. First off, it seems that there is no way to fully > compile the libraries, unless you have the paid version of VS, but > using MSYS and mingw it will compile the "important" parts (we may be > able to use cygwin to compile it fully, but id rather not have another > program to install if we can avoid it). > > Next up, we may want to change the makefile a little, right now you > have it set up as > > CFLAGS = -Wall -I. -I/usr/local/include > LDFLAGS = -L/usr/local/lib > > but on windows it will need to be something like > > CFLAGS = -Wall -I. -IC:\Qt\cppunit-1.12.0\include > -IC:\Boost\include\boost-1_33_1 > LDFLAGS = -LC:\Qt\cppunit-1.12.0\lib -LC:\Boost\lib > > so we may want something to support those changes easily (although it > isnt of the utmost importance since people can change it manually, but > that is a pain) > > > And now to the fun part... > when I run make I get this error (it compiles fine, this is the > linking phase): > > g++ -o testrunner -LC:\Qt\cppunit-1.12.0\lib -LC:\Boost\lib > util/utest_Error.o engine/utest_Variable.o > engine/utest_VariableTableInstance.o main/testmain.o > engine/VariableTableTemplate.o engine/utest_VariableTableTemplate.o > engine/utest_KeyNameTable.o engine/utest_TemplateTable.o > engine/utest_InstancePool.o -lcppunit > > Info: resolving vtable for CppUnit::TestSuiteBuilderContextBaseby > linking to __imp___ZTVN7CppUnit27TestSuiteBuilderContextBaseE > (auto-import)util/utest_Error.o > (.text$_ZN7CppUnit27TestSuiteBuilderContextBaseC2ERKS0_[CppUnit::TestSuiteBuilderContextBase::TestSuiteBuilderContextBase(CppUnit::TestSuiteBuilderContextBaseconst&)]+0xb) > :utest_Error.cpp:variable 'vtable for > CppUnit::TestSuiteBuilderContextBase' can't be auto-imported. Please > read the documentation > for ld's --enable-auto-import for details. > collect2: ld returned 1 exit status > mingw32-make: *** [testrunner] Error 1 > > > of which the important part is "variable 'vtable for > CppUnit::TestSuiteBuilderContextBase' can't be auto-imported. Please > read the documentation for ld's --enable-auto-import for details." > > and this link ( > http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/invocation.html#OPTIONS > <http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/invocation.html#OPTIONS> > ) gives some clues as to what is wrong, but how the heck am I supposed > to get around this??? > > > there are only a couple options I can think of: > 1) its screwed up since I didnt compile cppunit fully > 2) its screwed up since I used mingw to compile and for some reason it > didnt think it was on windows (thus causing an error that only occurs > on windows) > > I have no idea what to do next...i guess ill install cygwin next and > see if that helps, but I was kinda hoping you guys could throw some > ideas my way, or maybe do a little research and have more luck then me > finding some stuff > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ------------------------------------------------------------------------ > > _______________________________________________ > Greenengine-developer mailing list > Gre...@li... > https://lists.sourceforge.net/lists/listinfo/greenengine-developer > |