作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0 禁止Petalinux的recipes...增加的驱动 Petalinux工程,通过meta-user\recipes-kernel\linux\linux-xlnx中的patch文件,给Linux kernel增加了驱动,并使能为module形式编译...在编译后,把linux kernel的代码复制出来,再修改其中对应驱动程序的makefile,在makefile里删除驱动的“.o”文件。之后再编译,文件系统里,对应的驱动消失了,达到了目的。...编译时,Linux内核驱动程序中的__DATE__和__TIME__ 被报告错误 调试时,为了保证使用的内核驱动程序是最新版本,再驱动里增加了__DATE__和__TIME__的打印。...max9295_serdes_probe': drivers/media/i2c/avt_multi_sensor_fmc/max9295_serdes.c:58:93: error: macro "__DATE
,先看一些系统标准宏: 一、 ANSI C 标准宏 1、 ANSI C标准宏 __LINE__ // 在源代码中插入当前源代码行号 __FILE__ // 在源文件中插入当前源文件名 __DATE...// 当要求程序严格遵循ANSI C标准时该标识被赋值为1 __cplusplus // 当编写C++程序时该标识符被定义 _WIN32 // 在程序运行在windows系统上被定义位1 linux...// 在程序运行在linux系统上被定义位1 __x86_64__ // 在程序运行在64位系统上被定义位1 __i386__ // 在程序运行在32位系统上被定义位1 __VA_ARGS...func__); printf("__FILE__:%s\n", __FILE__); printf("__LINE__:%d\n", __LINE__); printf("__DATE...__:%s\n", __DATE__); printf("__TIME__:%s\n", __TIME__); DEBUG("test log number is %d ", test
; 编写一个简单的C程序测试一下: #include int main(void) { printf("_DATE_ is:%s\r\n", __DATE__);...RT-Thread的源码实现如下,是不是用__DATE__这个宏定义实现: void rt_show_version(void) { rt_kprintf("\n \\ | /\n");...%d build %s\n", RT_VERSION, RT_SUBVERSION, RT_REVISION, __DATE__); rt_kprintf(" 2006...- 2019 Copyright by rt-thread team\n"); } 再来看看LiteOS的源码实现,是不是也用__TIME__和__DATE__这两个宏定义实现: static char...ON %s",CN_LINK_VERSION_MAJOR,\ CN_LINK_VERSION_MINOR,CN_LINK_VERSION_FEATURE,__TIME__,__DATE
ANSIC标准定义了可供C语言使用的预定义宏: __LINE__ : 在源代码中插入当前源代码行号 __FILE__ : 在源代码中插入当前源代码文件名 __DATE__ : 在源代码中插入当前编译日期...标识符__DATE__和__TIME__一般可以用来表示固件的版本,方便了解运行的程序是什么时候的版本。 标识符__LINE__是一个整数,其他的文件名称、日期、时间都是字符串。...二、打印示例 printf("编译日期与时间: %s,%s\n", __DATE__,__TIME__); printf("当前所在行号:%d\r\n", __LINE__); printf("当前源文件名称...:%s\r\n", __FILE__); printf("当前固件编译日期:%s\r\n", __DATE__); printf("当前固件编译时间:%s\r\n", __TIME__); 三、C语言封装快捷...当前所在行号:%d\r\n", __LINE__); DebugPrintf("当前源文件名称:%s\r\n", __FILE__); DebugPrintf("当前固件编译日期:%s\r\n", __DATE
利用__DATE__与__TIME__编译宏特性为Qt程序添加编译日期时间。...static const QDateTime buildDateTime() { QString dateTime; dateTime += __DATE__; dateTime
错误写法 import requests __author__ = 'qiye' __date__ = '2018/5/19 21:59' url = "http://jinbao.pinduoduo.com...jinbao.pinduoduo.com', 'Referer':'http://jinbao.pinduoduo.com/', 'User-Agent':'Mozilla/5.0 (Linux...完整代码如下: import requests __author__ = 'qiye' __date__ = '2018/5/19 21:59' url = "http://jinbao.pinduoduo.com...jinbao.pinduoduo.com', 'Referer':'http://jinbao.pinduoduo.com/', 'User-Agent':'Mozilla/5.0 (Linux
VS中编译器:cl.exe ;Linux中目标文件后缀.o Windows中目标文件.obj ,链接器 link.exe 翻译环境 那翻译环境是怎么将源代码转换为可执行的机器指令的呢?...注:在Windows环境下的目标文件的后缀是 .obj ,Linux环境下目标文件的后缀是 .o 多个目标文件和链接库一起经过链接器处理生成最终的可执行程序。...VS2022 IDE 集成开发环境 Linux 环境下C语言编译器:gcc 二、预处理(预编译) 在预处理阶段,源文件和头文件会被处理成为.i为后缀的文件。...__FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循...file:%s line:%d\n", __FILE__, __LINE__); int main() { printf("%s\n", __FILE__); printf("%s\n", __DATE
__func__ << " at line " << __LINE__ << endl DATE...__func__ << " at line " << __LINE__ << endl DATE...__FILE__ //存放文件名的字符串字面值 __LINE__ //存放当前行号的整型字面值 __TIME__ //存放文件编译时间的字符串字面值 __DATE__ //存放文件编译日期的字符串字面值
1.3 __DATE__ 在C语言中,__DATE__ 是一个特殊的预处理器宏,用于获取当前编译的日期字符串。...__DATE__ 宏可以在程序中使用,它会在编译时被替换为一个字符串,表示编译源文件时的日期。...每次编译程序时,__DATE__ 宏的值会自动更新为当前的日期。 1.4__TIME__ 在C语言中,__TIME__ 是一个特殊的预处理器宏,用于获取当前编译的时间字符串。...0; i< ARRAY_SIZE; i ++) { printf("%d " ,array[i]); } printf("\n" ); return 0; } 编译指令: //linux...Linux环境的标准头文件的路径: /usr/include VS环境的标准头文件的路径: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\
test1); CONVERT(test2); CONVERT(test1 + test2); return 0; } 程序结果: dh@ubuntu:~/workSpace/Linux.../printf$ gcc printf.c dh@ubuntu:~/workSpace/Linux/printf$ ....define DEBUG(fmt, ...) printf("\033[31m[TEST: %s:%d:%s:%s] "#fmt"\033[0m\r\n", __func__, __LINE__, __DATE
< __LINE__ << endl; cout << "Value of __FILE__ : " << __FILE__ << endl; cout DATE...__ : " DATE__ << endl; cout << "Value of __TIME__ : " << __TIME__ << endl; return 0; }...当上面的代码被编译和执行时,它会产生下列结果: Value of __LINE__ : 6 Value of __FILE__ : test.cpp Value of __DATE__ : Feb 28
__FILE__ //进⾏编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循...include int main() { printf("%s\n", __FILE__); printf("%d\n", __LINE__); printf("%s\n", __DATE...DEBUG_PRINT printf("file:%s\tline:%d\t \ date:%s\ttime:%s\n" ,\ __FILE__,__LINE__ , \ __DATE...(i = 0; i < ARRAY_SIZE; i++) { printf("%d ", array[i]); } printf("\n"); return 0; } 编译指令如下: //Linux...endif #endif 九、头文件包含 头文件的包含方式有两种: 本地文件包含 查找策略:现在源文件所在目录下查找,如果该头文件未找到,编译器就像查找库函数头文件那样在标准位置查找头文件 Linux
1 预定义符号 C语言里面设置了预定义符号,在预处理阶段就被处理,有以下符号: __FILE__//进行编译的源文件 __LINE__//文件当前的行号 __DATE__//文件被编译的日期 __TIME...标准的,支持的话返回值就是1 int main() { printf("%s\n", __FILE__); printf("%d\n", __LINE__); printf("%s\n", __DATE...: #define PRINT printf("%s\n%s\n%d\n%s",\ __FILE__,__DATE__,\ __LINE__,__TIME__) 也就是在末尾加一个\...就行,在VS2022里面最后一行不用加续行符,在Linux环境下的gcc是每行都需要加一个续行符的。...< ARRAY_SIZE; i ++) { printf("%d " ,array[i]); } printf("\n" ); return 0; } VS里面这段代码肯定是会报错的,但是在Linux
接下来到了汇编阶段在linux环境下,test.s文件会被转化为存放二进制test.o的目标文件文件(在win下转化为test.obj文件),这些二进制文件是以elf(linux环境下)文件格式存放的,...三、预编译详解 3.1预定义符号 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__...stdio.h> int main() { printf("%s\n",__FILE__); printf("%d\n",__LINE__); printf("%s\n",__DATE...define DEBUG_PRINT printf("file:%s\tline:%d\tdata:%s\t \ time:%s\n",__FILE__, __LINE__, \ __DATE...2)Linux环境的标准头文件的路径: 为/usr/include 3)库文件包含: #include 查找方法: 查找头文件直接去标准路径下去查找
2.2 在define定义标识符的注意事项 三、#define 定义宏 全篇总结 一、预定义符号的含义 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE...file:%s\tline:%d\t \ date:%s\ttime:%s\n" ,\ __FILE__,__LINE__ , \ __DATE
DATE...__ : " DATE__ DATE__ : Feb 28 2011Value of __
常用的几个预处理宏有: __LINE__:表示当前源代码的行号; __FILE__:表示当前源文件的名称; __DATE__:表示当前的编译日期; __TIME__:表示当前的编译时间; __FUNCTION...stdlib.h> int main(void) { printf("\n"); printf("当前代码行号:%d\n", __LINE__); printf("当前编译日期:%s\n", __DATE
= NULL) && (os_strlen(ESP_AT_FW_VERSION) DATE__" "__TIME...__"\r\n"ESP_AT_FW_VERSION); } else { os_sprintf(buf,"compile time:"__DATE__" "__TIME__);...}#else os_sprintf(buf,"compile time:"__DATE__" "__TIME__);#endif at_set_custom_info(buf); at_port_print_irom_str