Qt似乎不包括MinGW包含

时间:2014-06-18 21:57:06

标签: c++ windows qt command-line mingw

我今天的问题是使用Qt 5.1.0和MinGW从Windows上的命令行编译QT应用程序。我的Qt安装位于C:\Qt\Qt5.1.0-MinGW

它在Qt Creator中编译得很好,但是从命令行开始它似乎不包含来自C:\Qt\Qt5.1.0-MinGW\Tools\mingw48_32\i686-w64-mingw32\include的标题,我在我的一些代码中#include

例如,我{C}文件中的#include <Ws2tcpip.h> C:\Qt\Qt5.1.0-MinGW\Tools\mingw48_32\i686-w64-mingw32\include,然后我使用getaddrinfo中声明的函数Ws2tcpip.h

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

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

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

2 个答案:

答案 0 :(得分:0)

锁定您没有正确设置环境。只需在QtCreator(构建环境)中查看您的项目工具包设置作为参考。

答案 1 :(得分: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