错误:‘int’之前预期有不合格的 id(库冲突)

问题描述 投票:0回答:1

我在我的项目中使用了 2 个库。一个定义了一个

Status
宏,另一个在命名空间中有一个名为
Status
的类。当我编译代码时,出现错误。我可以通过以下示例重现该问题。

//first library
namespace Test {
    class Status {};
}

//second library
#define Status int

int main() {
    Test::Status test;
    return 0;
}

错误:

error: expected unqualified-id before ‘int’
    8 | #define Status int

仅当我初始化

test
变量时才会发生该错误。我知道
Test::Status
想要替换为宏。如何在我的项目中使用这两个库?

谢谢您的帮助

c++
1个回答
0
投票

如果您不需要使用第二个库定义的

Status
宏,那么您可以尝试以下操作:

#include <second-library.h>
#undef Status

如果您希望能够使用第二个库定义的

Status
宏,您可以尝试以下操作:

#include <second-library.h>
#define Status2 Status 
#undef Status

然后将其用作

Status2
而不是
Status

© www.soinside.com 2019 - 2024. All rights reserved.