我正在尝试编译库,在运行make
时,我遇到了以下许多错误:
error: conflicting declaration ‘int x’
error: ‘x’ has a previous declaration as ‘Text* x’
以下是代码:
.
.
.
class Text;
class Code {
private:
std::vector<std::string> *tokens;
std::vector<std::string> *compounds;
std::vector<std::string> *compound_xml;
std::vector<std::string> *compound_xml_action;
void set_helper(Text *x, int a, int b, int c, std::string field, std::string value);
std::string itoa(int x);
public:
Code();
~Code();
int analyse_code(Text *x, std::string c, int x, int y, int z);
int print(Text *x, std::string c, int x, int y, int z);
int is_class(Text *x, std::string c, int x, int y, int z);
int is_class2(Text *x, std::string c, int x, int y, int z);
int not_class(Text *x, std::string c, int x, int y, int z);
.
.
.
所以在analyse_code
function \ method中,我应该将int x
转换为int a
还是int wtv
还是导致错误?
因为该库的作者在许多函数中使用了Text* x
和int x
,我想也许他知道他在做什么,指针可以是int
,或者我认为他是错的知道他在做什么吗?
不相关:图书馆是Adso,一个中文文本分析引擎。
答案 0 :(得分:0)
在声明中有两个名为'x'的参数:
int not_class(Text *x, std::string c, int x, int y, int z);
将其中一个命名为其他内容。例如:
int not_class(Text *txt, std::string c, int x, int y, int z);
作者不太好,所以要注意其他错误。
答案 1 :(得分:0)
问题不仅存在于analyse_code
中,而且存在于所有私有函数中。如果您有源代码(.c文件),我也会检查它。
无论如何,您应该将Text *x
更改为其他任何内容,例如Text *text