我在MingW上安装了Netbeans 7.3.1。我用这个构建了几个c / c ++终端应用程序,所以我很确定它有效。 我的困难在于QT。我似乎无法编译我的Qt应用程序(默认的main.cpp)。
我从这里http://qt-project.org/downloads安装了适用于Windows 32位(VS 2010,505 MB)的Qt 5.1.1和适用于Windows的Qt Creator 2.8.1(53 MB)(信息)。
在netbeans中,我创建了一个新的c ++ - > qt申请。在项目属性上,我将c ++编译器指向qt包括root和qt库的链接器。当我尝试清理并构建默认的main.cpp时: #include
int main(int argc, char *argv[]) {
// initialize resources, if needed
// Q_INIT_RESOURCE(resfile);
QApplication app(argc, argv);
return app.exec();
}
这就是我得到的。不完全确定此错误的含义:
" /C/msys/1.0/bin/make.exe" -f nbproject / Makefile-Debug.mk QMAKE = / C / Qt / 4.8.5 / bin / qmake.exe SUBPROJECTS = .clean-conf
make.exe [1]:输入目录/c/Users/Jones/Desktop/QtApplication_1'
/C/Qt/4.8.5/bin/qmake.exe VPATH=. -spec win32-g++ -o qttmp-Debug.mk nbproject/qt-Debug.pro
mv -f qttmp-Debug.mk nbproject/qt-Debug.mk
/C/msys/1.0/bin/make.exe -f nbproject/qt-Debug.mk distclean
make.exe[2]: Entering directory
/ c / Users / Jones / Desktop / QtApplication_1'
rm moc_HelloWorld.cpp
rm ui_HelloWorld.h
rm build / Debug / MinGW-Windows / HelloWorld.o build / Debug / MinGW-Windows / main.o build / Debug / MinGW-Windows / moc_HelloWorld.o
rm build / Debug / MinGW-Windows / QtApplication_1_resource_res.o
rm dist / Debug / MinGW-Windows / QtApplication_1.exe
rm:无法删除dist/Debug/MinGW-Windows/QtApplication_1.exe': No such file or directory
make.exe[2]: [distclean] Error 1 (ignored)
rm: cannot remove
qttmp-Debug.mk':没有这样的文件或目录
make.exe [2]:[distclean]错误1(忽略)
rm qttmp-Debug.mk
make.exe [2]:离开目录/c/Users/Jones/Desktop/QtApplication_1'
make.exe[1]: Leaving directory
/ c / Users / Jones / Desktop / QtApplication_1'
CLEAN SUCCESSFUL(总时间:663ms)
" /C/msys/1.0/bin/make.exe" -f nbproject / Makefile-Debug.mk QMAKE = / C / Qt / 4.8.5 / bin / qmake.exe SUBPROJECTS = .build-conf
make.exe [1]:输入目录/c/Users/Jones/Desktop/QtApplication_1'
/C/Qt/4.8.5/bin/qmake.exe VPATH=. -spec win32-g++ -o qttmp-Debug.mk nbproject/qt-Debug.pro
mv -f qttmp-Debug.mk nbproject/qt-Debug.mk
"/C/msys/1.0/bin/make.exe" -f nbproject/qt-Debug.mk dist/Debug/MinGW-Windows/QtApplication_1.exe
make.exe[2]: Entering directory
/ c / Users / Jones / Desktop / QtApplication_1'
c:/Qt/4.8.5/bin/uic.exe ../QtApplication_1/HelloWorld.ui -o ui_HelloWorld.h
g ++ -c -pipe -g -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I' ../../ ../../Qt/4.8.5/include/QtCore' -I' ../../../../ QT / 4.8.5 /包含/ QtGui' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包含/ ActiveQt可' -I'' -I'' -I' nbproject文件' -I'' -I' ../../../../ QT / 4.8.5 / mkspecs / Win32的克++' -o build / Debug / MinGW-Windows / HelloWorld.o ../QtApplication_1/HelloWorld.cpp
g ++ -c -pipe -g -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I' ../../ ../../Qt/4.8.5/include/QtCore' -I' ../../../../ QT / 4.8.5 /包含/ QtGui' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包含/ ActiveQt可' -I'' -I'' -I' nbproject文件' -I'' -I' ../../../../ QT / 4.8.5 / mkspecs / Win32的克++' -o build / Debug / MinGW-Windows / main.o main.cpp
C:/Qt/4.8.5/bin/moc.exe -DUNICODE -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I' ../../../ ../Qt/4.8.5/include/QtCore' -I' ../../../../ QT / 4.8.5 /包含/ QtGui' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包含/ ActiveQt可' -I'' -I'' -I' nbproject文件' -I'' -I' ../../../../ QT / 4.8.5 / mkspecs / Win32的克++' -D_ GNUC _ -DWIN32 ../QtApplication_1/HelloWorld.h -o moc_HelloWorld.cpp
g ++ -c -pipe -g -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I' ../../ ../../Qt/4.8.5/include/QtCore' -I' ../../../../ QT / 4.8.5 /包含/ QtGui' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包括' -I' ../../../../ QT / 4.8.5 /包含/ ActiveQt可' -I'' -I'' -I' nbproject文件' -I'' -I' ../../../../ QT / 4.8.5 / mkspecs / Win32的克++' -o build / Debug / MinGW-Windows / moc_HelloWorld.o moc_HelloWorld.cpp
windres -i QtApplication_1_resource.rc -o build / Debug / MinGW-Windows / QtApplication_1_resource_res.o --include-dir =。 -DUNICODE -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
g ++ -mthreads -Wl,-subsystem,windows -o dist / Debug / MinGW-Windows / QtApplication_1.exe build / Debug / MinGW-Windows / HelloWorld.o build / Debug / MinGW-Windows / main.o build / Debug / MinGW -Windows / moc_HelloWorld.o -L' c:/Qt/4.8.5/lib' -lmingw32 -lqtmaind编译/调试/ MinGW的窗口/ QtApplication_1_resource_res.o -lQt3Support4 -lQt3Supportd4 -lQtCLucene4 -lQtCLucened4 -lQtCore4 -lQtCored4 -lQtDeclarative4 -lQtDeclaratived4 -lQtDesigner4 -lQtDesignerComponents4 -lQtDesignerComponentsd4 -lQtDesignerd4 -lQtGui4 -lQtGuid4 -lQtHelp4 -lQtHelpd4 -lQtMultimedia4 - lQtMultimediad4 -lQtNetwork4 -lQtNetworkd4 -lQtOpenGL4 -lQtOpenGLd4 -lQtScript4 -lQtScriptTools4 -lQtScriptToolsd4 -lQtScriptd4 -lQtSql4 -lQtSqld4 -lQtSvg4 -lQtSvgd4 -lQtTest4 -lQtTestd4 -lQtWebKit4 -lQtWebKitd4 -lQtXml4 -lQtXmlPatterns4 -lQtXmlPatternsd4 -lQtXmld4 -lphonon4 -lphonond4 -lQtGuid4 -lQtCored4
警告:.drectve /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" /FAILIFMISMATCH:"_MSC_VER=1600" /FAILIFMISMATCH:"_ITERATOR_DEBUG_LEVEL=2" /DEFAULTLIB:"msvcprtd" /DEFAULTLIB:"MSVCRTD" /DEFAULTLIB:"OLDNAMES" ' unrecognized
c:/Qt/4.8.5/lib/qtmaind.lib(tmp/obj/debug_shared/qtmain_win.obj):(.text[?realloc@?$QVector@PAD@@AAEXHH@Z]+0x19): undefined reference to
__ security_cookie'
c:/Qt/4.8.5/lib/qtmaind.lib(tmp / obj / debug_shared / qtmain_win.obj):(。text [?realloc @?$ QVector @ PAD @@ AAEXHH @ Z] + 0x240):undefined reference到_CxxThrowException@8'
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: c:/Qt/4.8.5/lib/qtmaind.lib(tmp/obj/debug_shared/qtmain_win.obj): bad reloc address 0x240 in section
。文本[?realloc @?$ QVector @ PAD @@ AAEXHH @ Z]'
collect2.exe:错误:ld返回1退出状态
make.exe [2]: * [dist / Debug / MinGW-Windows / QtApplication_1.exe]错误1
make.exe [2]:离开目录/c/Users/Jones/Desktop/QtApplication_1'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory
/ c / Users / Jones / Desktop / QtApplication_1'
make.exe":* [.build-impl]错误2
BUILD FAILED(退出值2,总时间:5s)
我还将路径C:\ Qt \ 4.8.5添加到环境变量中并多次重新启动工作站。仍然没有运气。
我的工作站正在运行Windows 7 64位Service Pack 1.
答案 0 :(得分:1)
您为MSVC 2010安装了Qt,但是使用MingW作为编译器。那不行。 MingW和MSVC的C ++ ABI是不兼容的,因此它们不能混合。因此,链接在一起的所有C ++库(和主可执行文件)必须使用相同的编译器/编译器系列构建。 (这不会影响C库)。您需要使用MSVC或为MingW安装Qt。