我工作的一個C
項目,並正嘗試使用預處理器後衛如可以在C++中使用:C預處理器警衛?
#ifndef CONFIG_H
#define CONFIG_H
... exciting stuff in C ....
#endif
包括這在我的源似乎在Visual Studio中沒有效果,因爲當我包括給定的文件,如Config.h
,在多個文件中,編譯器給了我以下錯誤:
1>main.obj : error LNK2005: _OPCodes already defined in lib.obj
1>main.obj : error LNK2005: _OPTotal already defined in lib.obj
1>main.obj : error LNK2005: _RegCodes already defined in lib.obj
1>main.obj : error LNK2005: _RegTotal already defined in lib.obj
1>main.obj : error LNK2005: _UDSTotal already defined in lib.obj
誰能給我任何指針(沒有雙關語意)這一點,好嗎?
'#define CONFIG_G'應該是'#define CONFIG_H' – maditya 2013-04-10 06:55:52
@maditya對不起,這是早上3點,這是我的文章中的一個錯字。現在修復,仍然無法正常工作。 – 2013-04-10 07:09:50
當你說「在我的源代碼中包含這個」時,你的意思是你把include guard放在頭文件中,而不是在'.cpp'文件中,對吧?無論如何,請嘗試將'#pragma once'放在那裏,以查看會發生什麼。 – 2013-04-10 07:23:16