KeilC的头文件在HT-IDE中报错,该怎么解决?

[复制链接]
 楼主| jiyiche 发表于 2009-4-10 00:48 | 显示全部楼层 |阅读模式
我在HT-IDE里写C程序中包含了&ltstring.h&gt,编译时出现错误提示如下:<br /><br />伪指令progma的字符串`SAVE`无效<br />伪指令progma的字符串`REGPARMS`无效<br />伪指令progma的字符串`RESTORE`无效<br /><br />这是为什么呢?如果在UV2里面编译就不会出错。我用HT的IDE为什么就不行?补充:HT-IDE是台湾HOLTEK公司的IDE,有自己的库,只是我要用KEIL&nbsp;C里的&ltstring.h&gt头文件,应该怎么办。<br />STRING.H是从KEIL&nbsp;C文件夹中INC子文件夹里找到的,内容如下:<br />/*--------------------------------------------------------------------------<br />STRING.H<br /><br />String&nbsp;functions.<br />Copyright&nbsp;(c)&nbsp;1988-2002&nbsp;Keil&nbsp;Elektronik&nbsp;GmbH&nbsp;and&nbsp;Keil&nbsp;Software,&nbsp;Inc.<br />All&nbsp;rights&nbsp;reserved.<br />--------------------------------------------------------------------------*/<br /><br />#ifndef&nbsp;_SIZE_T<br />#define&nbsp;_SIZE_T<br />typedef&nbsp;unsigned&nbsp;int&nbsp;size_t;<br />#endif<br /><br />#ifndef&nbsp;NULL<br />#define&nbsp;NULL&nbsp;((void&nbsp;*)&nbsp;0L)<br />#endif<br /><br />#pragma&nbsp;SAVE<br />#pragma&nbsp;REGPARMS<br />extern&nbsp;char&nbsp;*strcat&nbsp;(char&nbsp;*s1,&nbsp;char&nbsp;*s2);<br />extern&nbsp;char&nbsp;*strncat&nbsp;(char&nbsp;*s1,&nbsp;char&nbsp;*s2,&nbsp;int&nbsp;n);<br /><br />extern&nbsp;char&nbsp;strcmp&nbsp;(char&nbsp;*s1,&nbsp;char&nbsp;*s2);<br />extern&nbsp;char&nbsp;strncmp&nbsp;(char&nbsp;*s1,&nbsp;char&nbsp;*s2,&nbsp;int&nbsp;n);<br /><br />extern&nbsp;char&nbsp;*strcpy&nbsp;(char&nbsp;*s1,&nbsp;char&nbsp;*s2);<br />extern&nbsp;char&nbsp;*strncpy&nbsp;(char&nbsp;*s1,&nbsp;char&nbsp;*s2,&nbsp;int&nbsp;n);<br /><br />extern&nbsp;int&nbsp;strlen&nbsp;(char&nbsp;*);<br /><br />extern&nbsp;char&nbsp;*strchr&nbsp;(const&nbsp;char&nbsp;*s,&nbsp;char&nbsp;c);<br />extern&nbsp;int&nbsp;strpos&nbsp;(const&nbsp;char&nbsp;*s,&nbsp;char&nbsp;c);<br />extern&nbsp;char&nbsp;*strrchr&nbsp;(const&nbsp;char&nbsp;*s,&nbsp;char&nbsp;c);<br />extern&nbsp;int&nbsp;strrpos&nbsp;(const&nbsp;char&nbsp;*s,&nbsp;char&nbsp;c);<br /><br />extern&nbsp;int&nbsp;strspn&nbsp;(char&nbsp;*s,&nbsp;char&nbsp;*set);<br />extern&nbsp;int&nbsp;strcspn&nbsp;(char&nbsp;*s,&nbsp;char&nbsp;*set);<br />extern&nbsp;char&nbsp;*strpbrk&nbsp;(char&nbsp;*s,&nbsp;char&nbsp;*set);<br />extern&nbsp;char&nbsp;*strrpbrk&nbsp;(char&nbsp;*s,&nbsp;char&nbsp;*set);<br />extern&nbsp;char&nbsp;*strstr&nbsp;&nbsp;(char&nbsp;*s,&nbsp;char&nbsp;*sub);<br />extern&nbsp;char&nbsp;*strtok&nbsp;&nbsp;(char&nbsp;*str,&nbsp;const&nbsp;char&nbsp;*set);<br /><br />extern&nbsp;char&nbsp;memcmp&nbsp;(void&nbsp;*s1,&nbsp;void&nbsp;*s2,&nbsp;int&nbsp;n);<br />extern&nbsp;void&nbsp;*memcpy&nbsp;(void&nbsp;*s1,&nbsp;void&nbsp;*s2,&nbsp;int&nbsp;n);<br />extern&nbsp;void&nbsp;*memchr&nbsp;(void&nbsp;*s,&nbsp;char&nbsp;val,&nbsp;int&nbsp;n);<br />extern&nbsp;void&nbsp;*memccpy&nbsp;(void&nbsp;*s1,&nbsp;void&nbsp;*s2,&nbsp;char&nbsp;val,&nbsp;int&nbsp;n);<br />extern&nbsp;void&nbsp;*memmove&nbsp;(void&nbsp;*s1,&nbsp;void&nbsp;*s2,&nbsp;int&nbsp;n);<br />extern&nbsp;void&nbsp;*memset&nbsp;&nbsp;(void&nbsp;*s,&nbsp;char&nbsp;val,&nbsp;int&nbsp;n);<br />#pragma&nbsp;RESTORE
computer00 发表于 2009-4-10 00:50 | 显示全部楼层

我晕……在另一个贴回复了呀,既然你用HT的库,

就应该用HT的头文件啊,对于库文件不能这样随便交叉引用的。
 楼主| jiyiche 发表于 2009-4-10 00:52 | 显示全部楼层

回复楼上的

谢谢。<br />只是想问问string.h对应的是HT当中的哪个头文件。
computer00 发表于 2009-4-10 01:07 | 显示全部楼层

应该也是string.h,在他的INC目录下找找看。

  
 楼主| jiyiche 发表于 2009-4-10 01:12 | 显示全部楼层

它目录里没有这个头文件。

怎么办呢?
computer00 发表于 2009-4-10 01:22 | 显示全部楼层

没有那就是不支持这个咯……不过按理说应该有才对的。

可能是其它的名字吧?用strcat作为包含文字去在这个文件夹搜索下,看看有没有在哪个文件里了。
 楼主| jiyiche 发表于 2009-4-10 01:34 | 显示全部楼层

再请问一下圈圈

为什么不同的IDE里的头文件不能共用呢?我想不懂了,我把&ltstring.h&gt拷贝到该IDE的INC文件夹里,为什么编译时候就会报错?<br />难道不同编译器的头文件不能混用?这样对C语言移植起来不就很不方便?
 楼主| jiyiche 发表于 2009-4-10 01:37 | 显示全部楼层

我找了,没在那个IDE的库文件夹中找到strcat

没找到,是不是意味着这个库里面不包含string.h这类的文件,那我要包含该用法,要怎么办呢?
computer00 发表于 2009-4-10 01:46 | 显示全部楼层

如果没有,那很有可能就是这个IDE不提供这些标准的库函数

那没办法,只有靠你自己去实现了。单.h文件只是一个函数格式的声明,实际的函数实现是放在对应的lib文件中的。<br />如果本身IDE不支持,你把.h文件复制进去也没用的。<br /><br />这个是string好象是标准库,一般的C语言开发环境都支持才对啊,奇怪了。<br /><br />搜索时指定是包含文字哦,不是文件名。
 楼主| jiyiche 发表于 2009-4-10 11:52 | 显示全部楼层

恩,我确定搜索时候是包含文字

找遍整个硬盘,就找到KEIL&nbsp;C中的string.h这个文件里有该关键字,其他的没有了。
holtek_fae 发表于 2009-4-10 15:26 | 显示全部楼层

string.h

holtek的IDE不包含,需要客户自己去实现.
 楼主| jiyiche 发表于 2009-4-10 19:59 | 显示全部楼层

谢谢楼上的

明白了
 楼主| jiyiche 发表于 2009-4-11 00:39 | 显示全部楼层

好的谢了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

484

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

176

主题

484

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部