c++外部无法解析的符号错误

c++ extern unresolved symbol error LNK2001

本文关键字:符号 错误 外部 c++      更新时间:2023-10-16

我有这样的东西:

--includes.h
extern int count;
--main.cpp
#include "includes.h"
int count = 4;
--other.cpp
#include "includes.h"
cout<<count; // will output 4

,但是当我这样做的时候,编译器错误输出以下消息:

error LNK2001: unresolved external symbol "int count" (?count@@3HA)

知道为什么我得到这个吗?

在不同的文件之间共享变量的最好方法是什么?如何在一个文件中定义使用一个变量,并在另一个文件中修改该变量?

main.cpp

#include <iostream>
int y; 
int testy();
int _tmain(int argc, _TCHAR* argv[])
{
     std::cout << y;
     std::cout<<testy();
     std::cout << y;
    return 0;
}

source.cpp

extern int y;
int testy(){return y++;}

您可以尝试将其放入未命名的命名空间

namespace{
    extern int count = -1;
};

cpp:

std::cout << count;

你应该在头文件中定义一个extern int,并在一个文件中定义一个int,但是这个文件不应该引用头文件

相关文章: