У меня есть несколько файлов .h/.cpp, каждый из которых должен иметь файлы, называемые «common.h/common.cpp», поскольку я повторно использую его определения в остальной части мои файлы. Файл common.h определяет некоторые намеренно глобальные переменные.gcc/g ++ и несколько определений глобальных переменных
Я работаю под Linux и gcc 4.4.7.
Compuler делает работу ОК, но г ++ компоновщик жалуется на многие случаи, как:
build/Debug/GNU-Linux-x86/StoreData2/spacewx.o:(.data+0x200): multiple definition of `nmdata::names`
build/Debug/GNU-Linux-x86/StoreData2/StoreData2.o:(.data+0x200): first defined here
и как таковой я не получаю Преуспевающие сборки. Пожалуйста, совет, как избавиться от этой ошибки и сохранить эти глобальные переменные. Я использую только функциональное программирование (используя библиотеки C++, такие как boost), а также собственные пространства имен/объекты.
Где вы, минимальный пример? –
Вы действительно не думали, что какая-либо из исходных червей может быть актуальной? –
Рассмотрите возможность использования ключевого слова 'extern'. Если вы можете дать нам минимальный код, я могу дать вам хороший ответ. –