完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大侠,小弟有一个工程,文件包括ctr0.S; MiniIO.h; MiniIO.C;IOTest.C;
我在MiniIO.C中定义了一个数组arKeyIOCon[6],然后在该文件的某个IO操作函数中调用该数组。 接下来,我在IOTest.C的Main函数中调用了MiniIO.C中的IO操作函数,编译器报错如下: ****************************************************************************************** make all ARM-elf-ld -Ttext 0x00000000 crt0.o MiniIO.o IOTest.o -o IOTest_elf IOTest.o:(.data+0x0): multiple definition of `arKeyIOCon' MiniIO.o:(.data+0x0): first defined here make: *** [all] Error 1 ****************************************************************************************** 我不是很明白,我的头文件中都有#ifndef这样的预编译指令,为什么还会出现重复定义的情况呢?这个问题要如何解决? 我的MAKEFILE文件如下: CFLAGS := -Wall -Wstrict-prototypes -g -fomit-frame-pointer -ffreestanding OBJS := crt0.o MiniIO.o IOTest.o AIM_ELF := IOTest_elf AIM_BIN := IOTest.bin AIM_DIS := IOTest.dis all : $(OBJS) arm-elf-ld -Ttext 0x00000000 $(OBJS) -o $(AIM_ELF) arm-elf-objcopy -O binary -S $(AIM_ELF) $(AIM_BIN) arm-elf-objdump -D -m arm $(AIM_ELF) > $(AIM_DIS) %.o:%.c arm-elf-gcc -Wall -O2 -c -o $@ $< %.o:%.S arm-elf-gcc -Wall -O2 -c -o $@ $< 工程代码已上传,还请各位大哥帮忙,不胜感激! |
|
相关推荐
2个回答
|
|
不要在头文件里定义变量就可以了,
#ifndef只能保证该头文件在“同一个源文件”里只被包含一次, 如果另一个源文件再次包含此头文件,那么在头文件里定义的变量就“定义了2次” |
|
|
|
QQQ,3Q
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2188 浏览 6 评论
1988 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4545 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 03:00 , Processed in 0.942979 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号