Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
CodeBlocks' Linux build environment - Question to Linux-Guru's
(1/1)
tiwag:
Hi friends,
what i've done till now:
i've set up a Ubuntu 5.04 as guest OS in VWware hosted on WinXP,
then following the instructions from this wiki
http://wiki.codeblocks.org/index.php/Compiling_Code::Blocks_in_Linux_(applies_to_all_distros)
i downloaded wxGTK-2.4.2 and CodeBlocks 1.0-RC1-1 sources.
then i patched wxGTK-2.4.2 and built it using
--- Code: ---./configure --enable-gtk2
--- End code ---
then i built CodeBlocks RC1-1 using
--- Code: ---make -f Makefile.unix
--- End code ---
then the wiki says
--- Quote ---This will build everything: the application and the plugins. The final step is to update the working environment for your system:
--- Code: ---make -f Makefile.unix update
--- End code ---
--- End quote ---
it was not working with my Makefile.unix from the RC1-1 download,
but the following steps with
--- Code: ---dos2unix Makefile.unix
./update
--- End code ---
worked and i got a run.sh to start my CodeBlocks
so far so good - my CodeBlocks on Linux is up and running
after a little investigating and learning about what i've done so far (i'm still a Linux n00b)
i found out that installing wxGTK-2.4.2 with this method installs (rather exclusively)?
a shared ansi version of wxwidgets in /usr/local
--- Code: ---headers in /usr/local/include
libs in /usr/local/lib
--- End code ---
and somehow automagically the compiler and linker finds them even if the makefile
only sets include and lib pathes to /usr/include and /usr/lib ???
why does gcc find the wxGTK- headers ?
from my windows build-environment i'm used to have several wxMSW builds from the
same wxWidgets-version, for example:
wxMSW-2.4.2
--- Code: ---all headers : in /wx242/include
all sources : in /wx242/src
and libs according to flavour
dll lib ansi : in /wx242/lib/gcc_dll
dll lib unicode : in /wx242/lib/gcc_dllu
static lib ansi : in /wx242/lib/gcc_lib
--- End code ---
and also another version of wxWidgets
wxMSW-2.6.1
--- Code: ---all headers : in /wx261/include
all sources : in /wx261/src
and libs according to flavour or used compiler
dll lib ansi : in /wx261/lib/gcc_dll
static lib ansi : in /wx261/lib/gcc_lib
dll lib ansi : in /wx261/lib/vc_dll (VC++)
static lib ansi : in /wx261/lib/vc_lib (VC++)
--- End code ---
installed in parallel.
and when i want to build my application with several versions or flavours of wxwidgets i define several
targets and change the directory entries for the proper include (setup.h) and lib files.
so i'm able to build the same source with wx242-dll, -dll-unicode, -static-lib and wx261-dll and -static-lib
how can i manage to intall such a structure on Linux ?
(it obviously doesn't work with "configure" and "make install", because then
only one single version and flavour of wxGTK is ready to use)
i look forward to your suggestions for my setup
-thanks in advance
grv575:
Sure this is quite common (e.g. qt or kde in /opt). Do
mkdir /opt/wx26
cd /opt; ln -s wx26 wx
./configue --prefix=/opt/wx26 ..
make && make install
nano /etc/ld.so.conf
/opt/wx
ldconfig
then it will automatically find libs in /opt/wx (which points to /opt/wx26). you can also specify include/lib dirs to gcc the same way you're used to doing in windows...so different wxwidgets versions in various /opt subdirectories is no problem.
tiwag:
thanks grv575 !
can you please comment this line
--- Quote from: grv575 on August 16, 2005, 12:55:07 pm ---cd /opt; ln -s wx26 wx
--- End quote ---
i dont understand what it's doing actually
the rest looks quite easy 8)
and logical - when i understand right -
the clue is to give configure the "--prefix=/mydir" in order to separate different builds. i.e.
dll ansi : "--prefix=/opt/wx24dll"
dll unicode : "--prefix=/opt/wx24dllu"
lib ansi : "--prefix=/opt/wx24lib"
lib unicode : "--prefix=/opt/wx24libu"
right ?
-thanks
fiammy:
The 'ln' command makes a link. It's like a shortcut on windows, but it can be used as an 'alias' for that directory. What you do, is pass through the access to the '/opt/wx' folder towards the /opt/wx26 folder.
grv575:
Yeah, ln -s makes a symbolic link (symlink) to a directory/file. So cd /opt; ln -s wx26 wx would make /opt/wx a symbolic link for the /opt/wx26 directory. This just makes it easier to select which wx installation is used as the default. You can just place /opt/wx in /etc/ld.so.conf, run ldconfig to recognize the changes to that loader file, and then linux will use whatever /opt/wx points to as the link path to link against. you could later do cd /opt; rm wx; ln -s wx24 wx. Or whatever other wxWidgets builds are in /opt. So yeah, just use the --prefix flag to build each wx build to a different /opt subdirectory.
Navigation
[0] Message Index
Go to full version