在我的main.h文件中,I #include "skybox.h"
。在skybox.h中,包含了stb_image.h(從29-1-2017開始,GitHub的最新版本)。與我遇到的任何其他庫不同,在包含stb_image.h之前,文檔會告訴#define STB_IMAGE_IMPLEMENTATION
。在包含skybox.h(在main.h中)之前,我曾嘗試過在包含stb_image.h(在skybox.h中)之前加入這個,並且都沒有。它們都不工作,鏈接器輸出build/main.o和build/skybox.o之間的所有重複項。包含stb_image.h文件時出現重複符號錯誤
LD:用於建築x86_64的
33點重複的符號是在連接時給定的誤差。另外,我正在從頭文件stb_image.h中執行#define,但已嘗試從源文件中執行該操作,但這沒有幫助。
頭文件中的註釋說,要在一個源文件中定義該預處理器變量來定義實現。那是你做的?你如何編譯和鏈接你的項目?編輯:這聽起來像你在一個頭文件,這將包括在多個源文件 - 這將是你的問題。 –