在linux下使用mingw交叉编译器声明"参数"中的两种或多种数据类型

Two or more data types in declaration of 'parameters' using mingw cross compiler under linux

本文关键字:参数 两种 数据类型 声明 linux mingw 编译器      更新时间:2023-10-16

我正在尝试使用MinGw交叉编译一些windows代码。代码相当简单:

头:

    class DragLabel : public QLabel
    {
        Q_OBJECT
            public:
                DragLabel();
                void fn(QString path, int id, bool small);
    };

cpp:# include"draglabel.h"

    DragLabel::DragLabel()
    {
       /* Snip ... */
    };
    void DragLabel::fn(QString path, int id, bool small)
    {
        (void)d;
    };

示例函数编译失败给我:

错误:参数声明中包含两个或多个数据类型

用于声明fn(QString…)。[编辑:]对不起,我忘了提到只有在声明bool变量时才会发生此错误,因此没有:

的函数
void fn(QString path, int id);

可以正常工作。

在debian linux下使用qmake和make可以很好地编译。

有人知道这里可能会发生什么吗?由于

似乎small是MinGW的某个扩展关键字(我在标准中找不到)。根据

当我把所有东西都改成int时,它就能工作了

small是类似longsigned的限定符,扩展了int的声明。

尝试将变量名称从small更改为其他名称