2011-10-18 4 views
3

Je suis sous AIX 6.1 et GCC 4.2 et lorsque je tente de compiler SQLite (je pense que la version 3.7.5) en utilisant les commandes suivantes:erreur de compilation sous AIX 6.1 - Undefined symbol: .__ gcc_qsub

gcc -maix64 -D_FILE_OFFSET_BITS=64 -c -fPIC -DHAVE_USLEEP ./sqlite/sqlite3.c -o ./sqlite/sqlite3.o 
gcc -maix64 -shared –L/usr/lib/threads -o ./sqlite/libsqlite3.so ./sqlite/sqlite3.o –ldl -lpthread 

I obtenir les erreurs suivantes:

ld: 0711-317 ERROR: Undefined symbol: .__gcc_qsub 
ld: 0711-317 ERROR: Undefined symbol: .__gcc_qmul 
ld: 0711-317 ERROR: Undefined symbol: .__gcc_qadd 
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. 

Avez-vous une idée de ce que cela pourrait être causé?

Toute aide serait grandement appréciée ;-)

Mise à jour 1:

Voici la sortie prolixe:

/usr/bin/gcc -maix64 -v -shared-libgcc -L/usr/lib/threads -o ./sqlite/libsqlite3.so ./sqlite/sqlite3.o -lpthread 
Using built-in specs. 
Target: powerpc-ibm-aix6.1.0.0 
Configured with: ../configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=c,c++,java --prefix=/opt/freeware --enable-threads --enable-version-specific-runtime-libs --host=powerpc-ibm-aix6.1.0.0 --target=powerpc-ibm-aix6.1.0.0 --build=powerpc-ibm-aix6.1.0.0 --disable-libjava-multilib 
Thread model: aix 
gcc version 4.2.0 
/opt/freeware/libexec/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/collect2 -bpT:0x10000000 -bpD:0x20000000 -btextro -bnodelcsect -b64 -o ./sqlite/libsqlite3.so /lib/crt0_64.o -L/usr/lib/threads -L/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/ppc64 -L/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0 -L/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/../../.. ./sqlite/sqlite3.o -lpthread -lgcc_s /opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/ppc64/libgcc.a -lc -lgcc_s /opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/ppc64/libgcc.a 
collect2: library libgcc_s not found 
+0

Il semble que l'on prenne la mauvaise version de 'libgcc', qui est implicitement ajoutée à l'invocation de l'éditeur de liens par le pilote gcc. Pourriez-vous s'il vous plaît répéter votre deuxième commande, avec '-v' ajouté à la ligne de commande, et publier la sortie? Cela révèlera la ligne de commande utilisée par le pilote pour exécuter l'éditeur de liens. – zwol

+0

Salut là, est ajouté le -static-libgcc à la ligne et maintenant il se lamente sur le symbole indéfini: .main des idées? Je vais publier le résultat -v tout à l'heure ... thnx :-) –

+0

J'étais stupide, j'ai oublié le -shared, il ne semble pas mieux ... thnx –

Répondre

0

Essayez d'ajouter -lm à la commande de lien pour inclure la bibliothèque mathématique.

Sinon, cochez cette case page et recherchez 'AIX'.

+0

Salut, merci pour le conseil .... Je vais essayer ça demain pour sûr ... d'autres idées si cela ne fonctionne pas? –

+0

Edité avec une autre suggestion. Je ne pense pas que '-lm' puisse vous aider car ces symboles sont dans' libgcc', mais ça vaut le coup d'essayer. – trojanfoe