2009-02-09 17 views
2

我使用mingw32-make来编译使用OpenGL一个Qt项目无数的警告,它编译正确和一切,但它吐出形式的无数警告消息:MinGW的随地吐痰约忽略“DLL的进口”属性

c:/qt3/include/qcolor.h:67: warning: inline function `int qGray(int, int, 
int)' declared as dllimport: attribute ignored 

对于这种特殊的情况下,函数的声明是:

Q_EXPORT inline int qGray(int r, int g, int b)// convert R,G,B to gray 0..255 
{ return (r*11+g*16+b*5)/32; } 

我的问题是,为什么它随地吐痰这些警告?我如何在不沉默其他合法警告(即与我的代码直接相关并可能是潜在问题的警告)的情况下使其沉默?

更重要的是,为什么mingw首先忽略了dll导入属性?

回答

0

我认为如果定义了下面的宏之一,Qt应该只定义Q_EXPORT(Qt 4中的Q_DECL_EXPORT)作为dllexport/import属性,所以确保你的makefile或包含Qt头文件的代码(它最终会包含qglobal.h)没有定义它们中的任何一个:WIN32,_WIN32,__WIN32__,WIN64,_WIN64,__WIN64__。或者你可以将Q_EXPORT定义为编译(或预处理器)标志中的任何内容,那么Qt应该跳过定义它。