Informo que não sei nada de C e compiladores para C, então solicito uma ajuda.
Baixei os fontes de um Gerenciador de Banco de Dados pós relacional chamado OpenQM/GPL.
Eu uso a versão comercial(já compilada) do OpenQM em várias versões do Fedora e Windows.
Tentei compilar a versão livre no Ubuntun 11.10 e não consegui.
Obtive informações que a versão livre/GPL compilou bem no Fedora e em versões anteriores do Ubuntun.
Baixei o OpenQM em:
http://www.billabong...ces.co.uk/anji/
http://billabong-ser...qmsrc_2-6-6.tgz
Descompactei e rodei um script para compilar que vem com o OpenQM.
O script divide a compilação em 9 partes, Stage 1,2...9
Na primeira fase deu um erro:
k_error
gplsrc/k_error.c: Na função ‘k_error’:
gplsrc/k_error.c:246:4: aviso: format not a string literal and no format arguments [-Wformat-security]
E não compilou o qm na 2a. parte.
...
/usr/qmsys/gplsrc/op_arith.c:1760: undefined reference to `tan'
gplobj/op_ccall.o: In function `ccall_c':
/usr/qmsys/gplsrc/op_ccall.c:93: undefined reference to `dlopen'
/usr/qmsys/gplsrc/op_ccall.c:101: undefined reference to `dlsym'
gplobj/op_misc.o: In function `op_pwcrypt':
/usr/qmsys/gplsrc/op_misc.c:388: undefined reference to `sqrt'
collect2: ld returned 1 exit status
Da fase 3 a 9 funcionou.
Fiz o seguinte:
"This step wil likely not work! Edit the buildgpl script, and remove -Werror from the QM_GCC_OPTIONS line, and try again. If that don't work, try adding -Wno-packed. If that don't work , try adding -Wno-pointer-sign. If you are using Redhat, Fedora or similar, you will need to remove the -Werror, and insert -Wno-pointer-sign. "
Não funcionou.
Pedi ajuda em um forum do ubuntun e outro do openqm e não consegui resolver o problema.
http://ubuntuforum-b...p?topic=90071.0
https://groups.googl...9fc962?hl=pt-BR
Alguém sabe o que eu devo fazer?
Segue o script:
# This script builds the GPL OpenQM source # # The first argument can be a stage number to continue from the given stage # # This script requires a standard installed QMSYS for the same release. # The directory from which this script is executed should have subdirectories # for the source (gplsrc), object (gplobj) and executables (bin). The # default names shown in brackets can be modified below. # The gpl.src file must be in the current directory and contains a list of # the source modules that are used to build the qm executable. # Define a few things: # QMSYS Pathname of QMSYS directory # GPLSRC Source directory # GPLOBJ Target directory for object files # GPLBIN Target directory for executables # QM_GCC_OPTIONS Compiler options # QMLIBS Libraries QMSYS=/usr/qmsys GPLSRC=gplsrc GPLOBJ=gplobj GPLBIN=bin QM_GCC_OPTIONS="-Wno-pointer-sign -DLINUX -D_FILE_OFFSET_BITS=64 -DGPL -g" QMLIBS="-lm -lcrypt -ldl" STAGE=$1 if test "$STAGE" = "" then STAGE=1 fi ######################### STAGE 1 - Build QM ######################### if test $STAGE -le 1 then echo ===== Stage 1 ===== echo Building C program modules... errors=0 errorprogs="" for file in `cat gpl.src` do echo $file gcc -c $QM_GCC_OPTIONS -I$GPLSRC -o $GPLOBJ/$file.o $GPLSRC/$file.c if test $? -ne 0 then errors=`expr $errors + 1` errorprogs="$errorprogs$file " fi done if test $errors -ne 0 then echo "Build aborted due to compilation errors in $errors program(s):" echo $errorprogs exit fi echo fi ######################### STAGE 2 - Link QM ########################## if test $STAGE -le 2 then echo ===== Stage 2 ===== echo "Linking qm" objects='' for file in `cat gpl.src` do objects="$objects $GPLOBJ/$file.o" done gcc -o $GPLBIN/qm $QMLIBS $objects echo fi ###################### STAGE 3 - Build QMCLILIB ###################### if test $STAGE -le 3 then echo ===== Stage 3 ===== echo "Building qmclilib.o and qmclilib.so" gcc -c $QM_GCC_OPTIONS -I$GPLSRC -o $GPLOBJ/qmclilib.o $GPLSRC/qmclilib.c cp $GPLOBJ/qmclilib.o $GPLBIN/qmclilib.o gcc -shared -Wl,-soname,$GPLOBJ/qmclilib.so -o $GPLOBJ/qmclilib.so $GPLOBJ/qmclilib.o -lc cp $GPLOBJ/qmclilib.so $GPLBIN/qmclilib.so echo fi ####################### STAGE 4 - Build QMTic ######################## if test $STAGE -le 4 then echo ===== Stage 4 ===== echo "Building qmtic" gcc -o $GPLBIN/qmtic $QM_GCC_OPTIONS -I$GPLSRC -lc $GPLSRC/qmtic.c \ $GPLSRC/inipath.c echo fi ####################### STAGE 5 - Build QMFix ######################## if test $STAGE -le 5 then echo ===== Stage 5 ===== echo "Building qmfix" gcc -o $GPLBIN/qmfix $QM_GCC_OPTIONS -I$GPLSRC -lc $GPLSRC/qmfix.c \ $GPLOBJ/ctype.o $GPLOBJ/linuxlb.o $GPLOBJ/dh_hash.o $GPLOBJ/inipath.o echo fi ####################### STAGE 6 - Build QMConv ####################### if test $STAGE -le 6 then echo ===== Stage 6 ===== echo Building qmconv gcc -o $GPLBIN/qmconv $QM_GCC_OPTIONS -I$GPLSRC -lc $GPLSRC/qmconv.c \ $GPLOBJ/linuxlb.o $GPLOBJ/dh_hash.o $GPLOBJ/ctype.o echo fi ####################### STAGE 7 - Build qmidx ######################## if test $STAGE -le 7 then echo ===== Stage 7 ===== echo Building qmidx gcc -o $GPLBIN/qmidx $QM_GCC_OPTIONS -I$GPLSRC -lc $GPLSRC/qmidx.c echo fi ####################### STAGE 8 - Build qmlnxd ####################### if test $STAGE -le 8 then # Build qmlnxd echo ===== Stage 8 ===== echo Building qmlnxd gcc -o $GPLBIN/qmlnxd $QM_GCC_OPTIONS -I$GPLSRC -lc \ $GPLSRC/qmlnxd.c $GPLSRC/qmsem.c echo fi #################### STAGE 9 - Compile terminfo ###################### if test $STAGE -le 9 then echo ===== Stage 9 ===== echo Compiling terminfo library mkdir terminfo $GPLBIN/qmtic -pterminfo terminfo.src echo fi