あいまいな質問タイトルで申し訳ありません。要するに、ここに私が持っているものがあります:
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
リンク中に ' ' が表示されます。
なにが問題ですか?