硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5657|回复: 7
收起左侧

[有问必答] 请问stm32中可以使用time.h吗

[复制链接]

73

主题

1196

回帖

1415

积分

至尊会员

积分
1415
发表于 2020-8-3 15:18:55 | 显示全部楼层 |阅读模式
.\AC6_DBG\AGING_TEST.axf: Error: L6218E: Undefined symbol time (referred from log.o).
编译出错。。。硬汉帮忙看看
  1. #include "stm32f1xx_hal.h"
  2. #include <stdarg.h>
  3. #include <stdio.h>
  4. #include <time.h>
  5. #include "debug.h"

  6. #define LOG_FILE    "./a.log"
  7. #define LOG_DEFAULT( fmt, ... )         log_out( LOG_FILE, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
  8. #define LOG_TOXFILE( flog, fmt, ... )   log_out( flog, __FILE__, __LINE__, fmt, ##__VA_ARGS__)

  9. int log_out(char *flog, char *file, int line, char *fmt, ...)
  10. {
  11.     va_list arg;
  12.     char    pre[1024], tmp[1024];
  13.     time_t clock;
  14.     struct  tm *c_ptr;
  15.     FILE    *fp;
  16.     time( &clock );
  17.     c_ptr = localtime(&clock);
  18.     sprintf( pre, "[%04d%02d%02d:%02d:%02d:%02d %s.%d]",
  19.              c_ptr->tm_year + 1900, c_ptr->tm_mon + 1, c_ptr->tm_mday,
  20.              c_ptr->tm_hour, c_ptr->tm_min, c_ptr->tm_sec, file, line );
  21.     va_start(arg, fmt);
  22.     vsprintf(tmp, fmt, arg);
  23.     va_end (arg);
  24.     //log to stdout
  25.     if ( !flog )
  26.     {
  27.         printf( "%-64.64s  %s", pre, tmp );
  28.         return 0;
  29.     }
  30.     //log to file
  31.     if ( !(fp = fopen( flog, "at" ) ) )
  32.         return -1;
  33.     fprintf( fp, "%-64.64s  %s", pre, tmp );
  34.     fclose( fp );

  35.     return 0;
  36. }
复制代码


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2020-8-3 15:29:40 | 显示全部楼层
没看懂你的问题,是AC5可以编译,AC6不可以编译吗
回复

使用道具 举报

73

主题

1196

回帖

1415

积分

至尊会员

积分
1415
 楼主| 发表于 2020-8-3 16:01:01 | 显示全部楼层
网上说好像单片机不用使用time.h,不知道对不对,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2020-8-3 16:39:02 | 显示全部楼层
wdliming 发表于 2020-8-3 16:01
网上说好像单片机不用使用time.h,不知道对不对,

必须可以用。
回复

使用道具 举报

73

主题

1196

回帖

1415

积分

至尊会员

积分
1415
 楼主| 发表于 2020-8-3 19:15:38 | 显示全部楼层

但是编译就不行,不知道为啥。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2020-8-4 07:50:45 | 显示全部楼层
http://www.armbbs.cn/forum.php?mod=viewthread&tid=26034
下面这几个例子都有使用,你看下

QQ截图20200804075107.png
回复

使用道具 举报

73

主题

1196

回帖

1415

积分

至尊会员

积分
1415
 楼主| 发表于 2020-8-4 08:45:20 | 显示全部楼层
eric2013 发表于 2020-8-4 07:50
http://www.armbbs.cn/forum.php?mod=viewthread&tid=26034
下面这几个例子都有使用,你看下

好的,谢谢
回复

使用道具 举报

0

主题

10

回帖

10

积分

新手上路

积分
10
发表于 2022-11-1 16:01:55 | 显示全部楼层
不勾选 Use MicrolLIB 编译,可以自动链接标准库函数。勾选 Use MicrolLIB 确实 Error: L6218E: Undefined symbol time。  
但是 V6 工程下的例程确实 勾选了 Use MicrolLIB,也能能调用 #include "time.h"

我发现V6 下 MDK的配置:  勾选了 No Auto Includes. 尝试还是不能解决问题。 猜想应该是通过 STM32CubeMX 新建的工程在什么地方做了某些设置
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 19:27 , Processed in 0.248724 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表