我想在Linux上使用mingw-w64爲Windows交叉編譯Qt應用程序。一切順利,直到連接階段;我收到了數百個與Qt庫有關的「未定義參考」錯誤。下面是一個示例:http://pastebin.com/b20Ede7a連接Qt應用程序時出現數百個「未定義參考」錯誤
這是我的.pro文件:
TEMPLATE = app
TARGET = myApp
DEPENDPATH += . res src
QT += core gui
CONFIG += static
isEmpty(TTS_ENGINE) {
TTS_ENGINE = flite
}
QMAKE_CXX = i686-w64-mingw32.static-g++
QMAKE_LD = i686-w64-mingw32.static-ld
QMAKE_CXXFLAGS += -std=c++0x -ggdb -DWINDOWS
QMAKE_LIBDIR += /opt/mxe/usr/i686-w64-mingw32.static/qt/lib /opt/mxe/usr/i686-w64-mingw32.static/lib
QMAKE_LIBS += -lSDL2_image -lSDL2_mixer -lpng -lz -ljpeg -lwebp -ltiff -lfreetype -lSDL2_ttf -llua `sdl2-config --libs` -lgif -lfontconfig -lm
INCLUDEPATH += . src /opt/mxe/usr/i686-w64-mingw32.static/qt/include /opt/mxe/usr/i686-w64-mingw32.static/include /opt/mxe/usr/i686-w64-mingw32.static/include/freetype2
# Input
HEADERS += bunch/of/headers
FORMS += res/desc.ui
RESOURCES += res/desc.res
SOURCES += bunch/of/sources
可能是什麼這個問題的原因是什麼?我使用MXE的靜態Qt4。
編輯:另外,這裏是i686-w64-mingw32.static-g++ -v
輸出:
Using built-in specs.
COLLECT_GCC=/opt/mxe/usr/bin/i686-w64-mingw32.static-g++
COLLECT_LTO_WRAPPER=/opt/mxe/usr/libexec/gcc/i686-w64-mingw32.static/4.9.2/lto-wrapper
Target: i686-w64-mingw32.static
Configured with: /opt/mxe/tmp-gcc-i686-w64-mingw32.static/gcc-4.9.2/configure --target=i686-w64-mingw32.static --build=i686-pc-linux-gnu --prefix=/opt/mxe/usr --libdir=/opt/mxe/usr/lib --enable-languages=c,c++,objc,fortran --enable-version-specific-runtime-libs --with-gcc --with-gnu-ld --with-gnu-as --disable-nls --disable-shared --disable-multilib --without-x --disable-win32-registry --enable-threads=win32 --disable-libgomp --with-cloog=/opt/mxe/usr --with-gmp=/opt/mxe/usr --with-isl=/opt/mxe/usr --with-mpc=/opt/mxe/usr --with-mpfr=/opt/mxe/usr --with-as=/opt/mxe/usr/bin/i686-w64-mingw32.static-as --with-ld=/opt/mxe/usr/bin/i686-w64-mingw32.static-ld --with-nm=/opt/mxe/usr/bin/i686-w64-mingw32.static-nm
Thread model: win32
gcc version 4.9.2 (GCC)
而失敗鏈接命令(約單行不好意思):
i686-w64-mingw32.static-g++ -Wl,-s -mthreads -Wl,-subsystem,windows -o release/descend.exe object_script.descend.Release -L'/opt/mxe/usr/i686-w64-mingw32.static/qt/lib' -L'/opt/mxe/usr/i686-w64-mingw32.static/lib' -L'/opt/mxe/usr/i686-w64-mingw32.static/qt/lib' -lSDL2_image -lSDL2_mixer -lwebp -lfreetype -lSDL2_ttf -llua `sdl2-config --libs` -lgif -lfontconfig -lflite_cmu_us_kal -lflite_cmu_time_awb -lflite_cmu_us_kal16 -lflite_cmu_us_awb -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmu_indic_lang -lflite_cmu_grapheme_lang -lflite_cmulex -lflite_cmu_indic_lex -lflite_cmu_grapheme_lex -lflite -lmingw32 -lqtmain -lQtGui -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lmng -llcms2 -lm -ltiff -llzma -ljpeg -lQtCore -lpng -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz
'i686-w64-mingw32.static-g ++ -v'告訴版本是什麼? – a3f 2015-03-31 04:28:33
它給版本4.9.2。 – 2015-03-31 04:30:18
請在問題本身中顯示實際的鏈接命令。 – hyde 2015-03-31 04:52:44