簡體   English   中英

C ++ extern無法解析的符號錯誤LNK2001

[英]c++ extern unresolved symbol error LNK2001

我有這樣的事情:

--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,但是此文件應沒有對標頭的任何引用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM