解決 multiple definition of

總結了解決multiple definition of的方法:spa

問題緣由:     當多個文件包含同一個頭文件時,而且你的.H裏面沒有加上條件編譯 #ifndef TEST_H #define TEST_H #endif 就會獨立的解釋,而後生成每一個文件生成獨立的標示符。在編譯器鏈接時,就會將工程中全部的符號整合在一塊兒,因爲,文件中有重名變量,因而就出現了重複定義的錯誤。  方法1:     給每個頭文件加上條件編譯,避免該文件被屢次引用時被屢次解釋,這是個應該是習慣。這個方法會解決大部分低級問題。 方法2:     當方法1無效時,能夠把全部的全局變量放入一個頭文件 global.h (名字隨意起,但要加條件編譯)中,每個變量前面加extern,聲明一下這些變量將在其它文件中定義。 而後創建一個和頭文件名字對應的.c or .cpp文件 如global.c。在裏面聲明全部的全局變量。例如:void(*Handl_Display)(); 而後,讓涉及到全局變量的文件include 」global.h「。這樣編譯時,會先對global.c編譯生成一個global.o ,而後再和其它文件的.o連接生成可執行文件。 方法3:     懶人方法,在全部的全局變量前加上static ,聲明成靜止變量。也能解決問題。      全部的方法都是網來的,O(∩_∩)O哈哈~      謝謝全部的提供方法的哥們~
相關文章
相關標籤/搜索