[問題] multiple definition in gcc?

看板Programming作者時間18年前 (2007/07/08 20:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
貼個很簡單的例子來說明multiple definition的問題.. 有三個檔案b.c, b.h 和 main.c, 執行gcc b.c main.c之後,產生如下的錯誤訊息 /tmp/ccWtXLur.o(.data+0x0): multiple definition of `m' /tmp/ccwfCTTj.o(.data+0x0): first defined here 我以為說, 用#ifndef __B_H__等行, 可以確保b.h只會被include一次, 但是似乎在main.c 以及b.c中的include "b.h", 皆執行了#include "b.h"此行, 因而造成multiple definition的問題. 不知道問題是在哪呢? 該如何做呢? 謝謝 ================================== b.h: #ifndef __B_H__ #define __B_H__ int m = 4; #endif ---------------------- b.c: #include "b.h" ---------------------- main.c: #include "b.h" int main() { return 0; } -- ☆ [Origin:椰林風情] [From: 59-124-164-52.hinet-ip.hine] [Login: **] [Post: 10]
文章代碼(AID): #16aD7_00 (Programming)
文章代碼(AID): #16aD7_00 (Programming)