【问题标题】:Netbeans 7.3.1 with Qt 4.8.5 - Not able to compile带有 Qt 4.8.5 的 Netbeans 7.3.1 - 无法编译
【发布时间】:2013-10-06 12:55:47
【问题描述】:

我安装了带有 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 时: #包括

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 构建/调试/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 removeqttmp-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'

清理成功(总时间: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_THREAD_SUPPORT -DQT./. /../Qt/4.8.5/include/QtCore' -I'../../../../Qt/4.8.5/include/QtGui' -I'../../.. /../Qt/4.8.5/include' -I'../../../../Qt/4.8.5/include' -I'../../../../ Qt/4.8.5/include/ActiveQt' -I'.' -一世'。' -I'nbproject' -我'。 -I'../../../../Qt/4.8.5/mkspecs/win32-g++' -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_THREAD_SUPPORT -DQT./. /../Qt/4.8.5/include/QtCore' -I'../../../../Qt/4.8.5/include/QtGui' -I'../../.. /../Qt/4.8.5/include' -I'../../../../Qt/4.8.5/include' -I'../../../../ Qt/4.8.5/include/ActiveQt' -I'.' -一世'。' -I'nbproject' -我'。 -I'../../../../Qt/4.8.5/mkspecs/win32-g++' -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/../../ /Qt/4.8.5/include/QtCore' -I'../../../../Qt/4.8.5/include/QtGui' -I'../../../.. /Qt/4.8.5/include' -I'../../../../Qt/4.8.5/include' -I'../../../../Qt/4.8 .5/include/ActiveQt' -I'.' -一世'。' -I'nbproject' -我'。 -I'../../../../Qt/4.8.5/mkspecs/win32-g++' -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_THREAD_SUPPORT -DQT./. /../Qt/4.8.5/include/QtCore' -I'../../../../Qt/4.8.5/include/QtGui' -I'../../.. /../Qt/4.8.5/include' -I'../../../../Qt/4.8.5/include' -I'../../../../ Qt/4.8.5/include/ActiveQt' -I'.' -一世'。' -I'nbproject' -我'。 -I'../../../../Qt/4.8.5/mkspecs/win32-g++' -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 build/Debug/MinGW-Windows/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): 未定义引用到_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.text[?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 位服务包 1。

【问题讨论】:

    标签: c++ qt netbeans-7


    【解决方案1】:

    您为 MSVC 2010 安装了 Qt,但使用 MingW 作为编译器。那是行不通的。 MingW 和 MSVC 的 C++ ABI 不兼容,因此不能混合使用。因此,所有链接在一起的 C++ 库(和主可执行文件)必须使用相同的编译器/编译器系列构建。 (这不会影响 C 库)。您需要使用 MSVC 或安装 Qt for MingW。

    【讨论】:

    • 最后使用了 Microsoft Visual Studio 2010。我使用了这个教程:[link here]stackoverflow.com/questions/5601950/… 来设置 Qt。我使用了这个标志:-debug-and-release 而不是-release。这几乎做到了。我在让它与 boost 一起工作时遇到了一些问题,但最终解决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 2014-02-21
    相关资源
    最近更新 更多