我有一个包含三个文件的简单项目。 Main.cpp,CountTriangles.cpp和CountTriangles.hpp。当我尝试构建/运行时,出现“链接器命令失败,退出代码为1”,并且在日志中,我发现“ ld:体系结构x86_64的1个重复符号”。
main.cpp:
#include "CountTriangles.cpp"
int main(int argc, const char * argv[]) {
return 0;
}
CountTriangles.cpp:
#include "CountTriangles.hpp"
using namespace std;
int TriangleCount::count(int N){
int helper = 1;
return helper;
}
CountTriangles.hpp:
#ifndef CountTriangles_hpp
#define CountTriangles_hpp
#include <iostream>
#include <stdio.h>
class TriangleCount{
public:
int count(int N);
};
#endif /* CountTriangles_hpp */
最佳答案
在main.cpp
中包含#include "CountTriangles.cpp"
,但是应该包含标题CountTriangles.hpp
由于TriangleCount::count(int N)
的定义随后将被编译两次,因此需要重新定义,从而导致出现重复的符号错误。