0

对不起,非特定的问题标题。简而言之,这就是我所拥有的:

文件1.cpp

#include "file1.h"

int main()
{
    somefunc();
}

文件1.h

#pragma once
#include "file2.h"

int somevar;

文件2.cpp

#include "file2.h"

void somefunc()
{}

文件2.h

#pragma once
#include "file1.h"

void somefunc();

这与 GCC 编译得很好,但multiple definition of somevar在链接期间给了我 ' ' 。

怎么了?

4

1 回答 1

2

somevar通过将包含其定义的头文件包含在多个 .cpp 文件中,您可以在多个文件中进行定义。在标题中声明它extern int somevar;,并且只在一个 .cpp 文件中定义它。

于 2013-07-12T10:04:02.443 回答