Makefile sample(已解决)

sh/bash/dash/ksh/zsh等Shell脚本
回复
chrwhy
帖子: 233
注册时间: 2007-11-17 19:51

Makefile sample(已解决)

#1

帖子 chrwhy » 2011-09-25 11:13

刚学写Makefile, 自己尝试写一个, 可是编译出错, 代码如下

代码: 全选

test : a.o 
        gcc a.o -o test
a.o : a.c
gcc a.c -o a.o
clean : rm a.o
make的时候, 第二行

代码: 全选

gcc a.o -o test
有问题, 不太清楚是什么问题
麻烦各位给看看, 先谢过啦
上次由 chrwhy 在 2012-02-08 11:42,总共编辑 1 次。
人之初, 性本善
不作恶, 共分享
头像
sunfish
帖子: 989
注册时间: 2008-05-03 1:53

Re: Makefile sample

#2

帖子 sunfish » 2011-09-25 11:51

gcc a.c -o a.o 不对,应该用gcc a.c -c a.o
也不知道你格式对不对
docker && kubernetes
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: Makefile sample

#3

帖子 cjxgm » 2011-09-25 15:01

sunfish 写了:gcc a.c -o a.o 不对,应该用gcc a.c -c a.o
也不知道你格式对不对
应该是 gcc -c -o a.o a.c
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
sunfish
帖子: 989
注册时间: 2008-05-03 1:53

Re: Makefile sample

#4

帖子 sunfish » 2011-09-25 15:13

cjxgm 写了:
sunfish 写了:gcc a.c -o a.o 不对,应该用gcc a.c -c a.o
也不知道你格式对不对
应该是 gcc -c -o a.o a.c
不用的,-c选项默认生成同名目标文件,测过了
docker && kubernetes
chrwhy
帖子: 233
注册时间: 2007-11-17 19:51

Re: Makefile sample

#5

帖子 chrwhy » 2011-09-25 19:25

谢谢楼上两位, 问题已经解决
人之初, 性本善
不作恶, 共分享
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: Makefile sample

#6

帖子 cjxgm » 2011-09-30 16:49

sunfish 写了:
cjxgm 写了:
sunfish 写了:gcc a.c -o a.o 不对,应该用gcc a.c -c a.o
也不知道你格式对不对
应该是 gcc -c -o a.o a.c
不用的,-c选项默认生成同名目标文件,测过了
[bash]cjxgm@clans /tmp$ gcc -o a.o a.c # a.c 是一个空文件
/usr/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld 返回 1
cjxgm@clans /tmp$ gcc -c -o a.o a.c
cjxgm@clans /tmp$ [/bash]
这意味着什么? :em06
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: Makefile sample

#7

帖子 tusooa » 2011-10-01 22:16

-c 是生成object文件。make defaults叫做compile.c
不加-c是直接链接成可执行文件。叫link.c

代码: 全选

] ls -ld //
回复