我有一個c代碼,可以在Linux中使用gcc編譯。但是,當我嘗試編譯使用Microsoft Visual Studio C++ 2008 Express版本,使用IDE,它顯示了錯誤無法編譯c代碼使用微軟視覺工作室C++ 2008 express版
vec.obj : error LNK2005: _INIT_SETA already defined in a.obj
fatal error LNK1169: one or more multiply defined symbols found
我查了一下頭文件和所有的人都預處理器守衛,防止頭被多次包括,例如
#ifndef _vec_h_
#define _vec_h_
然後我試圖編譯它在Visual Studio命令提示符下,
cl main.c
它可以編譯。問題是什麼?
您是否嘗試過清潔解決方案/項目並重建它? Visual Studio可能會每次都以不同的順序編譯文件(或者您只需要更改一個需要重新編譯的文件),因此您可能會使用早期的obj文件,並且定義已經存在? –
謝謝尼克!這真的有幫助!我排除了所有文件,只有main.c在項目中,現在它可以編譯。感謝Pratorian和Daniel,我想這確實是鏈接問題,但不知何故只有main.c解決了問題 – Michael