LETCHGO1 发表于 2014-12-6 14:34

头文件怎么添加啊

各位大神,我用的是CCS4.2,我想添加一个自己定义的变量作为一个头文件,命名为Data.h,可是在c文件中我已经INCLUDE了,可是还是说变量没有定义怎么办啊

LETCHGO1 发表于 2014-12-6 15:15

有好心人帮忙解答下吗,这个基础问题困惑我好多天了啊。。。。。。

aresc 发表于 2014-12-6 16:48

是不是你有跨文件的变量引用?比如你在A.c文件里定义了intvar1;然后在B.c文件里使用var1,要使用extern关键字先声明一下。

LETCHGO1 发表于 2014-12-6 17:49

没有啊,就是自己建立一个data.h里面放一些定义好的数据
然后在其他c文件中用,一用就出现这样的问题
undefined first referenced                                                                        
symbol       in file                                                                              
--------- ----------------                                                                        
_Sys      C:/Users/cold_mirace/Desktop/SCI com tst/led+sci.examaple/BUTTON/NixieTube/Debug/main.obj

error: unresolved symbols remain
error: errors encountered during linking; "C:/Users/cold_mirace/Desktop/SCI com
   tst/led+sci.examaple/BUTTON/NixieTube/Debug/foc.out" not built

>> Compilation failure
gmake: *** Error 1
gmake: Target `all' not remade because of errors.

LETCHGO1 发表于 2014-12-6 17:54

Sys.DCom.Uk=0;这是我引用的变量,变量全部在data.h中定义了,定义方法跟其他自带的头文件一样的写法,struct+union

zhangmangui 发表于 2014-12-6 21:16

LETCHGO1 发表于 2014-12-6 17:54 static/image/common/back.gif
Sys.DCom.Uk=0;这是我引用的变量,变量全部在data.h中定义了,定义方法跟其他自带的头文件一样的写法,stru ...

还是需要extern一下的    你看看TI的引用方式吧   也就是你看看TI的头文件里面的
结构体和联合体

原野之狼 发表于 2014-12-6 22:28

文件树列出来看看

LETCHGO1 发表于 2014-12-8 09:13

zhangmangui 发表于 2014-12-6 21:16 static/image/common/back.gif
还是需要extern一下的    你看看TI的引用方式吧   也就是你看看TI的头文件里面的
结构体和联合体   ...

因为我就把以前在2812片子上的data.h复制过来了,跟那个标准的联合体和结构体几乎一样。
还有就是我试着简单点只在头文件里定义一个unchar变量,然后c文件中include,还是说没有定义,这样的问题解决不了很烦人,哎

LETCHGO1 发表于 2014-12-8 09:43

原野之狼 发表于 2014-12-6 22:28 static/image/common/back.gif
文件树列出来看看

我是这样的一个过程,就是新建一个data.h,然后再include中包含进去,哪怕定义一个最简单的变量Uint sql
也声明了。
然后在.c文件中sql=0;都编译不通过,一开始就#include data.h了。
搞得人无语。

wang168506 发表于 2014-12-8 16:25

这个不是添加吧 ,是路径下自动加载的你写了没用你得看默认路径把自定义添加到路径下 或者添加路径才行

LETCHGO1 发表于 2014-12-8 16:58

wang168506 发表于 2014-12-8 16:25 static/image/common/back.gif
这个不是添加吧 ,是路径下自动加载的你写了没用你得看默认路径把自定义添加到路径下 或者添加路径才 ...

我知道你说的,就是这个data.h要放到路劲下,我是放到其他h文件一个路径下的呀。。。

zhangmangui 发表于 2014-12-8 22:12

LETCHGO1 发表于 2014-12-8 09:43 static/image/common/back.gif
我是这样的一个过程,就是新建一个data.h,然后再include中包含进去,哪怕定义一个最简单的变量Uint sql
...

举个例子比如你在.h中定义了一个unsigned int x = 0;
然后要在.c中引用   首先把头文件包含进来
近下来在.c中extern unsigned int x 一下   再使用
应该就没问题了   
不会是你用的Uint没有声明报的错吧

LETCHGO1 发表于 2014-12-9 11:03

zhangmangui 发表于 2014-12-8 22:12 static/image/common/back.gif
举个例子比如你在.h中定义了一个unsigned int x = 0;
然后要在.c中引用   首先把头文件包含进来
近下 ...

谢谢了,实在是无语了,各种方法都试了,你说的也试了,都不行,这尼玛这么继续啊、、、、、

zhangmangui 发表于 2014-12-9 23:12

LETCHGO1 发表于 2014-12-9 11:03 static/image/common/back.gif
谢谢了,实在是无语了,各种方法都试了,你说的也试了,都不行,这尼玛这么继续啊、、、、、 ...

工程打包传上来   让大伙帮你看看

LETCHGO1 发表于 2014-12-10 09:17

zhangmangui 发表于 2014-12-9 23:12 static/image/common/back.gif
工程打包传上来   让大伙帮你看看

昨天弄好了嘿嘿,谢谢啊。。不知道为什么结构体在c文件中还要再定义一次,就是在c文件中再写一次
volitale struct systimer sys,就可以随便引用结构体里的东西,希望对遇到这样问题的同学有帮助

zhangmangui 发表于 2014-12-10 22:20

LETCHGO1 发表于 2014-12-10 09:17 static/image/common/back.gif
昨天弄好了嘿嘿,谢谢啊。。不知道为什么结构体在c文件中还要再定义一次,就是在c文件中再写一次
volital ...

谢谢分享    建议你还是借鉴一下TI提供的头文件
他们做的比较好   

jing43 发表于 2014-12-12 14:17

说了半天就是一个结构体,要在多个 C 文件中使用的问题。
你首先要在每个结构体中定一下这个结构体,然后再用 extern struct结构体名 具体的结构体,这样这个具体的结构体才能使用。

LETCHGO1 发表于 2014-12-13 10:37

jing43 发表于 2014-12-12 14:17 static/image/common/back.gif
说了半天就是一个结构体,要在多个 C 文件中使用的问题。
你首先要在每个结构体中定一下这个结构体,然后再 ...

谢谢啊。。。菜鸟,嘿嘿

wkwangke123 发表于 2015-8-31 15:33

我按照TI的定义方法定义了一个结构体,但是为什么,我无法往其中的变量里赋值。里面的值一直为0.

gejigeji521 发表于 2015-9-30 22:38

复制进去最简单
页: [1]
查看完整版本: 头文件怎么添加啊