2014-06-18 108 views
0

我今天的问题是在Windows上使用Qt 5.1.0与MinGW从命令行编译QT应用程序。我的Qt安装在C:\Qt\Qt5.1.0-MinGWQt似乎不包括MinGW包括

它在Qt Creator中编译得很好,但是从命令行看来,它似乎没有包含来自C:\Qt\Qt5.1.0-MinGW\Tools\mingw48_32\i686-w64-mingw32\include的头文件,其中我在我的一些代码中使用了#include

例如,我#include <Ws2tcpip.h>,这是C:\Qt\Qt5.1.0-MinGW\Tools\mingw48_32\i686-w64-mingw32\include,在我的C++文件中的一个,然后我用的功能getaddrinfo,这是在Ws2tcpip.h声明。

这在Qt Creator中编译得很好,但是从命令行编译我得到了error: 'getaddrinfo' was not declared in this scope

这只是一个例子,我有一些其他的东西,其中定义在i686-w64-mingw32/include文件夹中的头文件中的东西在命令行上编译时似乎没有定义。

为什么它会在Qt Creator和命令行之间进行任何不同的编译,我该如何解决这个问题?

回答

0

我将C:/Qt/Qt5.1.0-MinGW/5.1.0/mingw48_32/bin;C:/Qt/Qt5.1.0-MinGW/Tools/mingw48_32/bin添加到PATH环境变量的开头。

(我意识到晚些时候援引C:/Qt/Qt5.1.0-MinGW/5.1.0/mingw48_32/bin/qtenv2.bat确实做到这一点。我只是不知道这个剧本的时候。)

此外,我添加-r -spec win32-g++qmake命令,并立即开始mingw32-make之前。

0

锁定,您没有正确设置您的环境。只要看看QtCreator中的项目套件设置(构建环境)作为参考。

+0

我做过了,但没有看到任何异常。我应该寻找什么? – Jashaszun