Code::Blocks Forums
User forums => Help => Topic started by: nostromo on November 30, 2006, 09:23:47 am
-
I read the wiki about installing C::B from source and I also tried to find
some answers searching this forum but I couldn't find any.
I tried to install the the package for Slackware which I found here
(codeblocks-1.0.0.svn.3253-i686-1jsa.tgz) and it worked out of a box,
but when I try to build my own package from source then I get some errors.
I have installed wxGTK-2.6.3-i486-1asz.tgz which I found at linuxpackages
and I downloaded latest SVN build of C::B build 3295.
After 'make' I get these errors:
*****************************************************************************
ccoptionsdlg.cpp: In member function `bool
CCOptionsDlg::ValidateReplacementToken(wxString&, wxString&)':
ccoptionsdlg.cpp:149: error: `wxRegEx' undeclared (first use this function)
ccoptionsdlg.cpp:149: error: (Each undeclared identifier is reported only once
for each function it appears in.)
ccoptionsdlg.cpp:149: error: syntax error before `(' token
ccoptionsdlg.cpp:152: error: `re' undeclared (first use this function)
make[4]: *** [ccoptionsdlg.lo] Error 1
make[4]: Leaving directory `/usr/src/rpm/SOURCES/codeblocks-rev3295/src/plugins/codecompletion'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/src/rpm/SOURCES/codeblocks-rev3295/src/plugins/codecompletion'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/rpm/SOURCES/codeblocks-rev3295/src/plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/rpm/SOURCES/codeblocks-rev3295/src'
make: *** [all-recursive] Error 1
********************************************************************************
Please help me to understand how to compile it. I especially beg those
who are using Slackware to help me.
I must say that C::B is very good software for me because it has such great
features which are very helpfull for people who are trying to learn cpp like me.
-
this should already been have fixed in a later revision --> update your sources again please
-
Hi,
I had similar problems when compiling codeblocks on Slackware 11.0 using the wxGTK package you mentioned. It turned out that the wxGTK package misses some libraries, so I had to compile the whole wxWidgets stuff on my own. Afterwards it compiled without problems. I used the scripts (wxwidget.SlackBuild) found at http://www.slackbuilds.net/forum/viewtopic.php?pid=957 and the sources from http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.6.3.tar.gz.
Regards
-
@manciuleas
and how did you implement/use that script?
I tried to run it in unpacked wxwidget dir but it gave me:
impossible d'exécuter ce programme !
I don't speak French so I couldn't understand what do I need to
with it.
-
This means that you ran the script as root. Either run it as an ordinary user or comment the following lines in the script:
# ------------------------------
# Action !
# ------------------------------
# est-ce l'utilisateur root ?
# if test $UID -eq 0; then
# echo "impossible d'exécuter ce programme !"
# exit
# else
....
#fi (on the last line)
-
No that didn't help me. I also tried to build wxGTK in the way it
was mentioned in wiki. I installed it and then I tried to build C::B
,without success because in the end I got these errors:
**********************************************************************
macrosmanager.cpp: In member function `void
MacrosManager::ReplaceMacros(wxString&, ProjectBuildTarget*, bool)':
macrosmanager.cpp:356: error: `LoadBufferRedirectOutput' undeclared (first use
this function)
macrosmanager.cpp:356: error: (Each undeclared identifier is reported only once
for each function it appears in.)
make[4]: *** [macrosmanager.lo] Error 1
make[4]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src/sdk'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src/sdk'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src/sdk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src'
make: *** [all-recursive] Error 1
***********************************************************************
I really don't know what more should I do. Please help me.
@manciuleas
when I tried your script, I managed to build a wxGTK package and I
installed it as it was but in the end after issuing ./bootstrap in C::B dir
I received an error that wxGTK is not installed!?!?!
-
You should not build only the wxGTK package, but the whole wxWidgets library. Use the source I pointed you to.
Below is the wxwidgets.SlackBuild script I'm using. You have to replace -mtune with -mcpu because you're using Slack 10.2. Additionally create a file doinst.sh in the same directory where the wxwidgets.SlackBuild script and the source are and insert this command:
( cd usr/bin ; ln -sf /usr/lib/wx/config/gtk2-unicode-release-2.6 wx-config )
Don't forget to hit enter at the end of the line and also to set the execution bits (chmod +x doinst.sh).
wxwidgets.SlackBuild
*************** cut here ****************
#! /bin/bash
# SlackBuild pour construire le paquet 'wxWidgets' .tgz (Slackware).
# $Id: wxwidgets.SlackBuild,v 1.2 2006-08-25 17:51:53+02 olivier Exp $
#
# Certains paramètres sont nécessaires, afin de pouvoir
# installer plus tard wxPython.
# Choix du gui -> GTK+.
# Désactivation du support pour l'OpenGL.
#
# ------------------------------
# Variables configurer
# ------------------------------
ARCH=${ARCH:-i486} # architecture du processeur
NAME="seb" # initiales du contributeur (3 lettres)
BUILD=${BUILD:-2} # version du paquet
SOURCE="wxWidgets-2.6.3.tar.gz"
OPT="--enable-gui --enable-shared --enable-optimise
--disable-debug --enable-compat24 --enable-sockets
--enable-geometry --enable-unicode --enable-display
--with-gtk2 --without-opengl --enable-threads"
#DOC=
CWD="$PWD"
PKG="$CWD/build-wxWidgets"
LOGS="$CWD/logs"
# ------------------------------
# Variables du ./configure
# ------------------------------
if test $ARCH = "i386"; then
CPUOPT="-O2 -march=$ARCH -mtune=i686"
elif test $ARCH = "i486"; then
CPUOPT="-O2 -march=$ARCH -mtune=i686"
elif test $ARCH = "i686"; then
CPUOPT="-O2 -march=$ARCH -mtune=i686"
elif test $ARCH = "x86_64"; then
CPUOPT="-O2 -march=$ARCH"
fi
PREFIX="/usr"
SYSCONFDIR="/etc"
LOCALSTATEDIR="/var"
# ------------------------------
# Fonctions
# ------------------------------
# renvoie un tableau
function splitUp()
{
# variable
declare -a array
# nb total d'éléments
n=$(echo $1 | gawk -F . '{print NF;}')
# est-ce un tarball ?
if test `echo $1 | cut -d . -f $(( n - 1 ))` = "tar"; then
# le prfixe
array=("${array- }" $(echo $1 | cut -d . -f 1-$(( n - 2 ))))
# l'extension
array=("${array- }" $(echo $1 | cut -d . -f $(( n - 1 ))-$n))
else
# le préfixe
array=("${array- }" $(echo $1 | cut -d . -f 1-$(( n - 1 ))))
# l'extension
array=("${array- }" $(echo $1 | cut -d . -f $n))
fi
# on retourne le tableau
echo ${array
}
# décompresse une archive
function unpack()
{
# tar.gz
if test $2 = "tar.gz"; then
tar -xzf $1
# tar.bz2
elif test $2 = "tar.bz2"; then
tar -xjf $1
# tous les autres
else
# on retourne un code d'erreur
return 1
fi
}
# configuration + compilation /!\ SPÉCIFIQUE À CE PAQUET /!\
function compil()
{
cd $1
# répertoire des journaux
mkdir $LOGS
# configure
CFLAGS="$CPUOPT" \
CXXFLAGS="$CPUOPT" \
./configure --prefix=$PREFIX \
--sysconfdir=$SYSCONFDIR \
--localstatedir=$LOCALSTATEDIR \
--build=$ARCH-slackware-linux-gnu \
$OPT 2>&1 | tee > "$LOGS/config-$1.log"
# le fichier Makefile existe-t-il ?
if test -e "Makefile"; then
# compilation
make \
2>&1 | tee > "$LOGS/make-$1.log" \
&& make -C contrib/src/animate \
2>&1 | tee >> "$LOGS/make-$1.log" \
&& make -C contrib/src/gizmos \
2>&1 | tee >> "$LOGS/make-$1.log" \
&& make -C contrib/src/stc \
2>&1 | tee >> "$LOGS/make-$1.log" \
&& make -C contrib/src/svg \
2>&1 | tee >> "$LOGS/make-$1.log" \
# installation
make DESTDIR=$PKG install \
2>&1 | tee > "$LOGS/install-$1.log" \
&& make -C contrib/src/animate DESTDIR=$PKG install \
2>&1 | tee >> "$LOGS/install-$1.log" \
&& make -C contrib/src/gizmos DESTDIR=$PKG install \
2>&1 | tee >> "$LOGS/install-$1.log" \
&& make -C contrib/src/stc DESTDIR=$PKG install \
2>&1 | tee >> "$LOGS/install-$1.log" \
&& make -C contrib/src/svg DESTDIR=$PKG install \
2>&1 | tee >> "$LOGS/install-$1.log" \
# nettoyage
make clean 1> /dev/null \
&& make -C contrib/src/animate clean 1>/dev/null \
&& make -C contrib/src/gizmos clean 1>/dev/null \
&& make -C contrib/src/stc clean 1>/dev/null \
&& make -C contrib/src/svg clean 1>/dev/null
else
# on retourne un code d'erreur
return 1
fi
}
# rédaction du slack-desc
function slackdesc()
{
cat > "$1/slack-desc"<<EOF
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|------handy-ruler-----------------------------------------------------|
wxwidgets: wxWidgets for GTK+
wxwidgets:
wxwidgets: wxWidgets is a free C++ library for cross-platform GUI development.
wxwidgets: With wxWidgets, you can create applications for differents GUIs
wxwidgets: (GTK+, Motif, MS Windows, MacOS X, Windows CE, GPE) from the same
wxwidgets: source code.
wxwidgets:
wxwidgets:
wxwidgets:
wxwidgets: Package created by $USER
wxwidgets:
EOF
}
# ------------------------------
# Action !
# ------------------------------
# est-ce l'utilisateur root ?
# if test $UID -eq 0; then
# echo "impossible d'exécuter ce programme !"
# exit
# else
# l'archive existe-t-elle ?
if test -e $SOURCE; then
# variable
declare -a array
array=(`splitUp $SOURCE`)
# on décompresse l'archive
unpack $SOURCE ${array[1]}
# est-ce que tout semble ok ?
if test $? -eq 0; then
# création du répertoire du futur paquet
mkdir $PKG
# compilation
compil ${array[0]}
# est-ce que tout semble ok ?
if test $? -eq 0; then
cd $CWD
# documentation
mkdir -p "$PKG/usr/doc/${array[0]}"
for i in `ls $CWD/${array[0]}/docs/*.txt`; do
cp -a "$i" "$PKG/usr/doc/${array[0]}"
done
cp -aR "$CWD/${array[0]}/docs/gtk/" \
"$PKG/usr/doc/${array[0]}"
# slack-desc
mkdir -p "$PKG/install"
slackdesc "$PKG/install"
# suppression du lien symbolique
if test -f "$PKG/usr/bin/wx-config"; then
rm "$PKG/usr/bin/wx-config"
cp -a "$CWD/doinst.sh" "$PKG/install"
fi
# création du paquet
PACKAGE="cd $PKG; chown -R root:root .;
chown -R root:root ./usr/bin;
/sbin/makepkg -l y -c n $CWD/${array[0]}-$ARCH-$NAME$BUILD.tgz;
cd ..; rm -Rf $PKG"
# root
su -c "$PACKAGE"
else
printf "Erreur: vérifiez les journaux dans %s\n" $LOGS
fi
cd $CWD
# nettoyage
rm -Rf ${array[0]}
else
echo "Le programme s'est arrêté prématurément !"
exit
fi
else
echo "L'archive est introuvable !"
exit
fi
#fi
*************** cut here ****************
-
:oops:have a problem with this:
Erreur: vérifiez les journaux dans /home/user/Download/build/logs
-
This means that you have an error. Look into the log files. Have you replaced -mtune with -mcpu?
-
And you should *not* unpack the sources. Just run wxwidgets.SlackBuild in the directory where you downloaded wxWidgets-2.6.3.tar.gz. And, don't forget to have doinst.sh present in the same directory.
-
The config-.log said:
./wxwidgets.SlackBuild.sh: line 107: ./configure: No such file or directory
-
I managed to build wxWidgets package, I installed it, did ldconfig.
After that, I tried to build C::B and it gave me these errors:
************************************************************************
macrosmanager.cpp: In member function `void
MacrosManager::ReplaceMacros(wxString&, ProjectBuildTarget*, bool)':
macrosmanager.cpp:356: error: `LoadBufferRedirectOutput' undeclared (first use
this function)
macrosmanager.cpp:356: error: (Each undeclared identifier is reported only once
for each function it appears in.)
make[4]: *** [macrosmanager.lo] Error 1
make[4]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src/sdk'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src/sdk'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src/sdk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/rpm/SOURCES/Codeblocks-1.0-rev3315/src'
make: *** [all-recursive] Error 1
**************************************************************************
and that's it. :?
I'm appealing the developers to make this little bit easier.
I spent hours and hours (more like days) trying to build this
package without any decent result.
-
There is some problem with the 'make', after I issued it I got those
errors that you can see in previous post. So I looked around and noticed
that there is no macrosmanager.lo, instead there was macrosmanager.loT.
-
Anyone, please???