3

mingw32-make用来编译一个使用 opengl 的 qt 项目,它可以正确编译一切,但它会吐出无数形式的警告消息:

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 导入属性?

4

1 回答 1

0

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

于 2009-02-09T15:26:42.547 回答