#pragmaonce在VisualStudio中不起作用
我正在使用 Visual Studio 并且 #pragma once 不起作用。这是我得到的以下错误:
1>namespaces.obj : error LNK2005: "int a" (?a@@3HA) already defined in another.obj
1>fatal error LNK1169: one or more multiply defined symbols found
这些是文件
主程序
#include <iostream>
#include "Header.h"
int main()
{
std::cout << a;
}
另一个.cpp
#include <iostream>
#include "Header.h"
void hi() {
std::cout << a;
}
头文件.h
#pragma once
int a = 5;
回答
#pragma once 并不意味着“仅将我包含在一个源文件中”,而是意味着“仅在一个源文件中包含我一次”。