我運行AIX 6.1,和GCC 4.2,當我嘗試編譯SQLite的使用下面的命令(我想版本3.7.5):編譯錯誤 - 未定義的符號:.__ 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
我得到以下錯誤:
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.
你知道這可能是由什麼引起的嗎?
任何幫助將非常感激;-)
更新1:下面是詳細的輸出:
/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
它聽起來像是在拾取錯誤版本的'libgcc',它隱式添加到gcc驅動程序的鏈接器調用中。你能否重複你的第二個命令,在命令行中附加'-v',併發布輸出?這將顯示驅動程序用於運行鏈接程序的命令行。 – zwol
嗨,那裏添加了-static-libgcc到行,現在它呻吟未定義的符號:。主任何想法?我將發佈剛剛的-v結果... thnx :-) –
我當時很笨,我忘記了共享,這似乎更好...... thnx –