linux下能生成两种.o的文件 一个是我用gcc编译生成的 另一个是makefile生成的,这俩一样么?

这两个不同的.o文件好像不太一样,那个makefile生成的.o文件不能运行,但是我用“gcc-ohelloworld.ohelloworld.c”生成的hellowor... 这两个不同的.o文件好像不太一样,那个makefile生成的.o文件不能运行,但是我用“gcc -o helloworld.o helloworld.c” 生成的helloworld.o文件能运行,可是makefile里边
“CC=arm_v5t_le-gcc
EXEC=hello
OBJS=hello.o
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) -o $@ $(OBJS)
clean:
-rm -f $(EXEC)*.o”
生成了俩 一个hello 一个hello.o 都不能在linux下运行 hello可以在我连接arm后用超级终端运行 不明白这是为啥 .o文件也不一样么?
展开
 我来答
星夜落尘
2011-08-11 · TA获得超过594个赞
知道小有建树答主
回答量:466
采纳率:0%
帮助的人:356万
展开全部
一样的,makefile只是一个脚本,它实际调用的是gcc。

但你这里用“gcc -o helloword.o helloworld.c”调用的是linux(x86的)的标准gcc,而你的makefile脚本中的gcc版本是arm_v5t_le-gcc(是用在arm嵌入式处理器的)。两个处理器不一样,自然编译出的helloworld.o不一样,前者只能在x86电脑上运行,后者只能在arm嵌入式处理机中运行。

你把makefile中的“CC=arm_v5t_le-gcc”改成“CC=gcc”然后再make,之后肯定能运行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式