抱歉非特定问题标题。总之,这就是我所拥有的:
file1.cpp
#include "file1.h"
int main()
{
somefunc();
}
file1.h
#pragma once
#include "file2.h"
int somevar;
file2.cpp
#include "file2.h"
void somefunc()
{}
file2.h
#pragma once
#include "file1.h"
void somefunc();
这可以很好地与GCC编译,但在链接期间会给我“multiple definition of somevar
”。
有什么问题?
答案 0 :(得分:2)
您通过将包含其定义的头文件包含在多个.cpp文件中,在多个文件中定义somevar
。在标头中将其声明为extern int somevar;
,并且只在一个.cpp文件中定义它。