[問題] 一個簡單的makefile錯誤
一個簡單的makefile的習題,如題,錯誤訊息如下
a.o:(.rodata+0x0):「a」的多重定義
ab.o:(.rodata+0x0):第一次定義在此
b.o:(.rodata+0x0):「b」的多重定義
ab.o:(.rodata+0x4):第一次定義在此
collect2: 錯誤: ld 回傳 1
make: *** [lab1] Error 1
我的makefile source code如下:
lab1:ab.o a.o b.o
gcc -o lab1 ab.o a.o b.o
ab.o:ab.c a.h b.h
gcc -c ab.c
a.o:a.c a.h
gcc -c a.c
b.o:b.c b.h
gcc -c b.c
clean:
rm -f *.o
不清楚到底是那裡出錯了,有人可以為我解惑嗎?
另外附上相關檔案
a.h : const int a=1;
b.h : const int b=2;
a.c: #include<stdio.h>
#include<stdlib.h>
#include"a.h"
void a_fun()
{
printf("a=%d\n",a);
}
b.c: #include<stdio.h>
#include<stdlib.h>
#include"b.h"
void b_fun()
{
printf("b=%d\n",b);
}
ab.c: #include<stdio.h>
#include<stdlib.h>
#include"a.h"
#include"b.h"
void main()
{
printf("a+b=%d\n",(a+b));
}
明明是一個簡單的練習,可是我不曉得錯在那找了找網路似乎也沒人犯過這種錯
可能這種錯很低能,但是希望各位前輩不吝賜教
感謝大家
--
「不需要讓青少年有判斷力和批判力。只要給他們汽車、摩托車、美麗的明星、刺激的音
樂、流行的服飾,以及對同伴的競爭意識就行了。剝奪青少年的思考力,根植他們服從指
導者命令的服從心才是上策。讓他們對批判國家、社會和指導者保持著一種動物般原始的
憎惡。讓他們深信那是少數派和異端者的罪惡。讓他們都有同樣的想法。讓他們認為想法
和大家不同的人就是國家的敵人……」
by 阿道夫·希特勒
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 27.245.238.60
推
03/10 16:59, , 1F
03/10 16:59, 1F
推
03/10 17:04, , 2F
03/10 17:04, 2F
→
03/10 17:05, , 3F
03/10 17:05, 3F
→
03/11 14:38, , 4F
03/11 14:38, 4F
→
03/11 14:38, , 5F
03/11 14:38, 5F
→
03/13 09:10, , 6F
03/13 09:10, 6F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章
51
108