gpt4 book ai didi

c++ - C++ 中的多重定义异常

转载 作者:行者123 更新时间:2023-11-30 01:15:58 25 4
gpt4 key购买 nike

我正在开始学习 C++,但我从我的 IDE (CodeBlocks) 中收到此编译错误。我不明白为什么会这样。

|2|multiple definition of `parser::parseFile()'
|2|first defined here|

我不明白这是怎么发生的。这是我的整个代码库。

main.cpp

#include "parser/parser.cpp"

int main()
{
return 0;
}

解析器/parser.cpp

namespace parser {
void parseFile() {

}
}

最佳答案

假设你编译了 main.cppparser/parse.cpp 你显然有两个 parser::parseFile() 的定义: #include 指令被指定文件的内容替换(您可以在编译器中使用 -E 标志来查看结果)。

您可能打算在头文件声明 parser::parseFile()(通常带有后缀.h.hpp 或类似的东西):

// file: parser/parser.hpp
#ifndef INCLUDED_PARSER_PARSER
#define INCLUDED_PARSER_PARSER

namespace parser {
void parseFile();
}

#endif

... 并将此头文件包含到两个 翻译单元中。

关于c++ - C++ 中的多重定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27586100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com