The Help Thread

Programmers discuss here anything related to FreeOrion programming. Primarily for the developers to discuss.

Moderator: Committer

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

#136 Post by Geoff the Medio »

trace wrote:A Question to the programmers:

What libraries r most needed to code at freeorion
and which r less needed.
Which r for what needed.
And which code needs not that much libs to code,
so u have not to learn so much about your lib.

I think about coding at freeorion, but now I want to code with qt,
cause I bought a book about qt.
You're more likely to get an answer to that if you ask using full, coherent sentences and fully typed-out words.

As far as I know, all of the libraries listed as required on the compile wiki page are in fact required. However you don't really need learn or understand most (or any) of them to do programming for FO... most of the learning I've had to do was how to use internal game code functions and structures, not external library interfaces. I was doing mostly high level stuff or math-based calculations though; the more low-level your coding, the more likely you'll need to learn an external library to do it.

noelte
Juggernaut
Posts: 872
Joined: Fri Dec 26, 2003 12:42 pm
Location: Germany, Berlin

#137 Post by noelte »

@trace Do you try to exclude some libs? If you do not use fo with it's current libs, imo you will wast your time, because qt won't make it into fo (as it is now). And so, i guess, noone is going to give you a hand, because there are other things to do.
Press any key to continue or any other key to cancel.
Can COWs fly?

trace
Space Squid
Posts: 66
Joined: Fri Jun 27, 2003 6:23 pm
Location: Milkyway

#138 Post by trace »

I didnt proposed to use qt in freeorion, but I have no Problem if qt will be used in freeorion.

It is just a question what libs I do have to learn. I just want to know what I could program at freeorion. Maybe I will program months later at freeorion. I dont know.

solrac776
Space Floater
Posts: 33
Joined: Sat Aug 14, 2004 1:01 am
Location: Dublin, Ireland

Resolutions!

#139 Post by solrac776 »

Hi

I compiled from CVS and got FO to work, and I can run it.

Then FO crashed because i had no default/data, so I downloaded data.tar.bz2 (from somewhere off the forums), uncompressed it into default, and then ran FO again.

Joy! It works! I get a slash screen and everything.

Bummer. Everything's in 1280x1024 resolution and my lap only does 1024x768 and I can't see half the game.

Work-around anyone? Is there a setting that I'm missing or do I need a new set of data files for that resolution?

Regards

Carlos

Tyreth
FreeOrion Lead Emeritus
Posts: 885
Joined: Thu Jun 26, 2003 6:23 am
Location: Australia

#140 Post by Tyreth »

Run freeorion with --help. You can set the width and height manually. Eg:
./freeorion --app-width 1024 --app-height 768

-f for full screen

solrac776
Space Floater
Posts: 33
Joined: Sat Aug 14, 2004 1:01 am
Location: Dublin, Ireland

#141 Post by solrac776 »

Thanks Tyreth!

mark1ewis
Space Krill
Posts: 3
Joined: Mon May 30, 2005 10:35 pm
Location: San Diego, CA

Problems compiling GiGi

#142 Post by mark1ewis »

Posted this in another forum, before realizing there was a sticky help topic-- sorry if you read this twice.

GiGi actually compiles, but refuses to link. I think the error is more related to my boost install than with GiGi, but figured I'd run it by this forum in hopes of getting a quick answer or pointing out something obvious I'm missing.

Here is the failing command and the error message:

g++ -shared -nostdlib /usr/lib/gcc/x86_64-redhat-linux/3.4.3/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/3.4.3/crtbeginS.o .libs/GGApp.o .libs/GGButton.o .libs/GGClr.o .libs/GGControl.o .libs/GGDrawUtil.o .libs/GGDropDownList.o .libs/GGDynamicGraphic.o .libs/GGEdit.o .libs/GGEventPump.o .libs/GGFont.o .libs/GGListBox.o .libs/GGMenu.o .libs/GGMultiEdit.o .libs/GGPluginInterface.o .libs/GGPtRect.o .libs/GGScroll.o .libs/GGSlider.o .libs/GGStaticGraphic.o .libs/GGTextControl.o .libs/GGTexture.o .libs/GGWnd.o .libs/GGZList.o .libs/XMLDoc.o .libs/GGFileDlg.o .libs/GGThreeButtonDlg.o -Wl,--whole-archive ../libltdl/.libs/libltdlc.a -Wl,--no-whole-archive -L/usr/X11R6/lib64 -L/usr/X11R6/lib -L/usr/lib64 /usr/lib64/libfreetype.so -lz -lboost_signals -lboost_filesystem -llog4cpp -lILUT -lGLU /usr/lib64/libGL.so /usr/lib64/libSDL.so -lIL -lILU -ldl -lpthread -L/usr/lib/gcc/x86_64-redhat-linux/3.4.3 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.3/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.3/../../.. -L/lib/../lib64 -L/usr/lib/../lib64 -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-redhat-linux/3.4.3/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/3.4.3/../../../../lib64/crtn.o -Wl,--rpath -Wl,/usr/lib64 -Wl,-soname -Wl,libGiGi.so.0 -o .libs/libGiGi.so.0.0.0
[mark@localhost src]$ vi run.sh
[mark@localhost src]$ sh run.sh
/usr/bin/ld: /usr/lib64/libboost_signals.a(trackable.o): relocation R_X86_64_32S against `boost::signals::trackable::signal_disconnected(void*, void*)' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/libboost_signals.a: could not read symbols: Bad value
collect2: ld returned 1 exit status


-- Mark

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

#143 Post by tzlaine »

You should be linking against .so files, not .a files, as the error indicates. If those are not present in /usr/lib64, you need to put wherever they are located before /usr/lib64 in your search path, or you need to build them and place the there.

mark1ewis
Space Krill
Posts: 3
Joined: Mon May 30, 2005 10:35 pm
Location: San Diego, CA

FMOD not 64-bit

#144 Post by mark1ewis »

Thanks for the tip-- apparently the boost RPM's for RHEL4 create the .so.1 symlinks, but not the .so symlinks-- weird.

Now I'm running into a problem that FMOD is not available for x86_64 and it's closed-source so I can't recompile.

Is there any way to compile without FMOD, by disabling sound?

Thanks,
Mark

Sky Keeper
Space Krill
Posts: 5
Joined: Sat Oct 09, 2004 9:12 pm
Location: Russia

#145 Post by Sky Keeper »

I need help with GG. it uses libltdl that needs lots of config info. Can anyone provide a working GG project for MSVC 7.1? or config.h for that compiler? or GiGi and GiGiSDL libs and dlls for win32.

MareviQ
Space Kraken
Posts: 100
Joined: Tue Aug 09, 2005 6:47 pm
Location: Somewhere in Poland

GiGi ...

#146 Post by MareviQ »

I've found this project by complete accident, and yet it has captured my imagination. So, basically, i want to help out (i'm a novice c++ programmer - "novice" as in "i've never done any graphical apps whatsoever")

So, i've tried to compile GiGi, with mixed results - first by make. When using it, my whole autoconf stuff decieded that it's too new, and the files in CVS were done using an older version. Still, it started to compile. THEN, it choked on headers, basically on all those including external, system-shell-defined variables, like %(gg_devil_with_allegro)s - it all stayed in the .h files...

Then i've tried scons ad it all worked like a charm... but including system optimalisation into scons is a problem (i'm trying to get it all into a ebulid - i'm using gentoo, and i don't like files just being installed somewhere, without something remembering what files were those and how to remove them later.) and i'd prefer to build it using the standard configure/make/make intall way (with optional ./autogen.sh earlier)

so is GiGi currently buildable using make, or scons is the preffered way? (or just maybye my system messed something up? - gcc-3.4.4, glibc-2.3.5, autoconf-2.59, automake-1.9.6, binutils-2.16.1, libtool-1.5.18 on a 2.6.11 kernel)

....
note after some testing: aclocal just dies when it can't find one of the paths given to search for m4 files (/usr/local/share/aclocal in my case) doing nothing... but even after fixing this, my main problem still remains unsolved (and I don't have allegro installed, just on a side note)
to me it looks like sth is wrong with the make system, as the %-thngs should be long gone once the files get to g++[/b]

Tyreth
FreeOrion Lead Emeritus
Posts: 885
Joined: Thu Jun 26, 2003 6:23 am
Location: Australia

#147 Post by Tyreth »

SCons is the way that GiGi is now meant to compile. I wasn't aware that would have implications for Gentoo, but I think it's something Gentoo should consider including in its system because I imagine more projects will begin to use it in the future. FreeOrion itself currently uses the normal configure/make tools, but you may have troubles unless you're using up to date tools.

If you are able to get an ebuild working for this and contribute it to Gentoo for when 0.3 is ready that would be very useful. Also, welcome to the forums!

MareviQ
Space Kraken
Posts: 100
Joined: Tue Aug 09, 2005 6:47 pm
Location: Somewhere in Poland

GiGi + scons + portage + sandbox = a headache

#148 Post by MareviQ »

I've run into some problems regarding forcing scons (during GiGi compilation) to play nice with Gentoo intstalation scripts. It manages to make sandbox quite irate about it trying to write .sconsign files in several directories it's not supposed to...

sandbox is sort of a secure pre-install enviroment - it makes sure that during installation/compilation/etc no weird things are done (mostly trying to access directories and files you're not supposed to.) and scons tries to put .sconsign files in /usr/include/SDL, /usr/include/SDL/SDL and /usr/lib/ - obviously not something that should happen during source compilation process... even tho from what i've gathered those hold just file signatures...

and one more thing - it appears that newer versions of graphviz (eg. 2.4) aren't quite backwards-compabitable (or however you write this word) - i had to downgrade to 2.2 to have a dot.h required by FreeOrion in /usr/include/graphviz ... it ALSO appears that emerging graphviz in gentoo wont make other programs see the installed libraries... a shame... i'll try to get it to work this evening, in hopes of creating a one-step install procedure for gentoo users ... hopefully...

MareviQ
Space Kraken
Posts: 100
Joined: Tue Aug 09, 2005 6:47 pm
Location: Somewhere in Poland

GiGi

#149 Post by MareviQ »

It looks like the work on GiGi has been resumed, as the cvs version doesn't compile on my pc at the moment with following error:

Code: Select all

g++ -pthread -D_REENTRANT -Wall -O2 -fPIC -I/usr/include/SDL -I/usr/include/freetype2 -Iinclude -Iinclude/net -Iinclude/SDL -Iinclude/dialogs -Ilibltdl -c -o src/GGApp.os src/GGApp.cpp
In file included from include/GGApp.h:35,
                 from src/GGApp.cpp:27:
include/GGBase.h:123: error: ISO C++ forbids declaration of `sp_counted_base_impl' with no type
include/GGBase.h:123: error: expected `;' before '<' token
In file included from src/GGApp.cpp:29:
include/GGBrowseInfoWnd.h:135: error: expected constructor, destructor, or type conversion before ';' token
scons: *** [src/GGApp.os] Error 1
scons: building terminated because of errors.
on the bright side, i've managed to make it play nice and not put any .sconsign files anywhere in my system, by adding

Code: Select all

SConsignFile()
in SConstruct file. It was discussed here:http://scons.tigris.org/servlets/ReadMs ... msgNo=1889. And here is the diff:

Code: Select all

--- GG/SConstruct       2005-09-13 12:29:14.000000000 +0200
+++ GG/SConstruct       2005-09-13 12:27:27.000000000 +0200
@@ -7,6 +7,7 @@
 from build_support import *

 env = Environment()
+SConsignFile()

 mising_pkg_config = not WhereIs('pkg-config')
Edit: disregard that compile problem, it was caused by me having the wrong version of boost (1.33.0 ... my system updated it during the last system-wide update ... probably when i wasn't looking) - right now everything compiles cleanly... but it tries to do something weird again during the install process:

Code: Select all

scons: done building targets.
 * build completed, installing files
>>> Test phase [not enabled]: media-libs/gigi-20050808

>>> Install gigi-20050808 into /var/tmp/portage/gigi-20050808/image/ category media-libs
scons: Reading SConscript files ...
Using previous successful configuration; if you want to re-run the configuration step, run "scons configure".
scons: done reading SConscript files.
scons: Building targets ...
ACCESS DENIED  unlink:    /usr/include/GG/GGSlider.h
scons: *** [/usr/include/GG/GGSlider.h] Permission denied
scons: building terminated because of errors.
Note: the first scons message is when it finishes the compilation ("scons prefix='/usr'"). Then there are some gentoo install scripts messages, and finally, scons is run once again ("scons prefix='/usr' install") but is stopped when it tries to do something sandbox doesn't approve of... any ideas how to prevent this?

Edit2: Problems solved.
Last edited by MareviQ on Wed Nov 09, 2005 3:47 pm, edited 2 times in total.

Asky
Space Krill
Posts: 3
Joined: Sun Jul 04, 2004 1:26 am

#150 Post by Asky »

EDIT: n/m, I fixed it

Post Reply