我有幾個.h/.cpp文件,每個文件都應該有一個名爲「common.h/common.cpp」的文件,因爲我在其餘部分重新使用它的定義我的文件。 common.h文件定義了一些有意的全局變量。gcc/g ++和全局變量的多重定義
我在Linux和gcc 4.4.7下工作。
Compuler做的工作不錯,但G ++鏈接器抱怨許多情況下,像:
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'關鍵字。如果你能給我們一些簡單的代碼,我可以給你一個很好的答案。 –