链接器命令失败,重复符号

链接器命令失败,重复符号

问题描述:

我有一个简单的项目与三个文件。 Main.cpp,CountTriangles.cpp和CountTriangles.hpp。当我尝试构建/运行时,出现“链接器命令失败,退出代码1”,并在日志中找到“ld:1架构x86_64的重复符号”。链接器命令失败,重复符号

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 */ 
+1

你包含* source *文件,而不是头文件。不要这样做。 –

+0

主要包括'#include“CountTriangles.cpp”'而不是.hpp文件。 –

+2

对于将来的问题,请阅读如何提出好问题](http://stackoverflow.com/help/how-to-ask)。你应该真的*复制粘贴错误输出。完整,完整并附带任何可能的信息说明。 –

main.cpp你包括#include "CountTriangles.cpp"但你应该在包括头CountTriangles.hpp

由于TriangleCount::count(int N)的定义然后被编译两次,重新定义,您会得到由此产生的重复符号错误。