переменная должна быть абсолютно глобальной во всех источниках - PullRequest
2 голосов
/ 15 октября 2019

Как сделать переменную глобальной для всех файлов / модулей .cpp (двоичного) (двоичного), который должен быть скомпилирован и скомпонован g ++ в строке?

, даже если он определен в main и имеет extern в var. чтобы быть включенным в каждый .cpp

extern int a_sample_var;

пробовал больше недели только для сбоя,

.....: неопределенная ссылка на a_sample_var ... ..

Какой щедрый гуру помогает мне?

1 Ответ

0 голосов
/ 15 октября 2019
extern int a_sample_var;

Сообщает компилятору: int с именем a_simple_var определен где-то еще (подумайте о ключевом слове extern: это сокращение для external, что означает "где-то еще"). Просто оставьте там заполнитель и подождите, пока компоновщик не найдет его!

Что ж, если вы делаете это в каждом файле cpp (включая заголовок), то все плачут по поводу определения (предоставляя объявление), но не с кем дать определение. Помните, что формулировка здесь, определения и декларации - это разные вещи .

В одном файле cpp вы должны дать определение a_simple_var. Просто удалите extern:

int a_sample_var;          // Initialize with 0

или

int a_sample_var = 1;      // Initialize with 1.

Эти два правильных определения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...