打印
[开发工具]

IAR 7.0版本找不到stderr

[复制链接]
1805|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kernelshell|  楼主 | 2014-9-9 23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我下载IAR最新版,编写一个新的程序,主函数里面加上#include "stdio.h"  main函数里面加上 fprintf(stderr,"%s %d",__FILE__,__LINE__); 却提示:
Error[Li005]: no definition for "__stderr"
我用别人的工程,在这个工程里加上 fprintf(stderr,"%s %d",__FILE__,__LINE__);却没有提示错误。请问我该怎么做呢?
谢谢!

沙发
airwill| | 2014-9-10 06:53 | 只看该作者
留意一下编译环境的设置, 包含路径的设置.

使用特权

评论回复
板凳
mmuuss586| | 2014-9-10 08:18 | 只看该作者

看看, 2个工程的不同设置之处;
照着改好了;

使用特权

评论回复
地板
kernelshell|  楼主 | 2014-9-10 09:15 | 只看该作者
已经找照着改了,不行。

使用特权

评论回复
5
kernelshell|  楼主 | 2014-9-10 09:49 | 只看该作者
IAR里面使用standardinclude directory.而且,使用Linker里面使用Automatic runtime  library.编译选项里面选择C,C99, Standard with IAR  extensive 这两个编译环境,设置都对照了。可是还是不行。(我用#define __stderr   stderr定义了__stderr.)也不知道怎么回事?谁有IAR可以试试看,看能否找到stderr。这个stderr究竟要包含那个文件?IAR安装路径下有很多库,我试了好几个,都不行。

使用特权

评论回复
6
kernelshell|  楼主 | 2014-9-10 10:02 | 只看该作者
#include "stdio.h"   //#include <stdio.h>
#define __stderr   stderr
int main(void)
{
  fprintf(stderr,"%s %d",__FILE__,__LINE__);
return 0;
}
编译后:Error[Li005]: no definition for "__stderr"
找不到stderr,就是说,找不到stderr,编译器路径该怎么设置呢?另外的一个别人的工程,就可以。我对照着编译器设置都设置一样了,也不行。请高人指导。

使用特权

评论回复
7
kernelshell|  楼主 | 2014-9-10 15:35 | 只看该作者
我又测试了一下,也不知道上次怎么测试的,怎么回事。现在的情况是:
空工程可以正确编译fprintf(stderr,"%s %d",__FILE__,__LINE__);
我的那个错误怎么回事呢?比如拿最简单的__stderr来说吧,他是我使用别人的库里调用的,
我在头文件里定义#define  __stderr  stderr
可是还是提示找不到定义。该怎么办?编译器环境对照过了。

使用特权

评论回复
8
tuzihog| | 2014-9-10 17:19 | 只看该作者
关注一下

使用特权

评论回复
9
小浣熊| | 2014-9-11 21:13 | 只看该作者
顶一个!!

使用特权

评论回复
10
kernelshell|  楼主 | 2014-9-12 11:56 | 只看该作者
FILE *__stderr(const char *format,...){};
我自己给一个空定义,也还是不行。

使用特权

评论回复
11
bear1| | 2014-9-12 13:50 | 只看该作者
关注

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝