我工作的一臺掃描儀/解析器一所大學的項目,我碰到的這個錯誤:功能的多定義,這裏先定義
stack.c 91: multiple definition of '[all functions in stack.c]'
stack.c 91: first defined here
出於某種原因,我不能似乎弄清楚編譯器似乎告訴我,我已經在同一個地方多次定義了相同的函數。
我被給了一些框架代碼和一個makefile以開始,所以我自己寫的文件(stack.c,stack.h)和其他代碼之間必須存在某種不正確的通信。
- 生成文件:http://pastebin.com/0Tx1Wixg
- symtab.c:http://pastebin.com/M5gg0b3n
- symtab.h:http://pastebin.com/NvkZdWTy
- stack.h:http://pastebin.com/qT8fXEK0
- stack.c:http://pastebin.com/FfPa06ys
我已經一直在移動#包括和混亂的製作文件超過一個小時,現在只是跑到更多和莫重新發布。應該如何設置?
stack.c
和stack.h
是我寫的用於symtab.c
和symtab.h
的小文件。
你有沒有試過在你的頭文件中放置一個警衛以避免多重定義? – Ganesh
我已經將一個新版本的'stack.h'粘貼爲http://pastebin.com/pxTVFJMM。請嘗試使用此版本並分享您的結果? – Ganesh
可能重複http://stackoverflow.com/questions/685439/multiple-definition-of-c-compiler-error – Ganesh