今天遇到了一個鏈接錯誤:error LNK2005: "float *" (?*@@*) already defined in already defined in *.obj
明明沒有重複定義啊,怎麼會出現這種錯誤呢?
解決方案:
首先注意不能在.h頭文件中定義全局變量,否則只要其他文件包括了該頭文件,就會出現already defined in *.obj的錯誤。
應該把全局變量放在.cpp文件中定義,然後在其他文件中用到該變量時用extern聲明一下。
例如,首先在a.cpp中定義一個全局變量int x=0;然後需要在頭文件a.h中聲明該變量extern int x;再編譯鏈接就沒有錯誤了。