zjr0411 发表于 2009-1-1 01:08:40

avr studio在gcc模式下编译多个文件,全局变量怎么弄【恢复】

avr studio在gcc模式下编译多个文件,全局变量怎么弄,我现在把全局变量放在一个头文件里,每个用到的文件都包含时每个文件都能编译成功,但是不能链接成功,说多次定义,但是只有一个文件包含时,没有包含的那些文件又不能编译成功,说没有定义。

那么这个应该怎么处理呢,谢谢!

gliet_su 发表于 2009-1-2 01:43:03

TO LZ
要是有大量的全局变量,就用一个C文件专门定义全局变量,然后H文件全部extern。
这样不就好管理了吗?
以上仅个人见解。

ndust 发表于 2009-1-1 09:37:27

jh

zjr0411 发表于 2009-1-1 01:39:52

果然可以,谢谢!

要是有大量的全局变量呢,这样就有点麻烦了啊,到时候不容易找到是哪个文件定义的全局变量了,想引用、修改也比较麻烦啊,能不能就用一个文件?能比较方便的解决?

gliet_su 发表于 2009-1-1 01:17:29

A.C定义 unsigned char a;
那么A.H声明 extern unsigned char a;
想用就包含A.H

爱则倾心 发表于 2012-7-24 15:05:23

跟AVR STUDIO配合起来,感觉还是ICC好用啊,GCC好多问题搞不明白

zang_zi_han 发表于 2012-11-27 21:27:41

遇到和你类似的问题,解决的方法有点无语。也是有多个.c文件,也用了extern,但编译的时候总是说没定义,后然把各函数.h文件的#ifdef XX #defineXX #endif去到,就好了。后然看了别人的程序,不用去任何东西,将#ifdef改为#ifndef就行。
页: [1]
查看完整版本: avr studio在gcc模式下编译多个文件,全局变量怎么弄【恢复】