#include "awinic_charger.h"和#include <awinic_charger.h>的区别
时间: 2024-04-26 13:24:06 浏览: 5
#include "awinic_charger.h" 和 #include <awinic_charger.h> 的区别在于头文件的搜索路径不同。
使用 #include "awinic_charger.h" 时,编译器会首先在当前源代码文件所在的目录中查找 awinic_charger.h 头文件。如果当前目录中不存在该头文件,则会在系统预定义的一些标准路径中查找,例如 /usr/include、/usr/local/include 等等。因此,使用双引号包含的头文件通常用于包含自定义的头文件。
而使用 #include <awinic_charger.h> 时,编译器则会直接在系统预定义的标准路径中查找 awinic_charger.h 头文件,不会在当前目录中查找。因此,使用尖括号包含的头文件通常用于包含系统提供的标准库头文件。
总的来说,使用双引号包含的头文件是相对路径,使用尖括号包含的头文件是绝对路径。同时,使用尖括号包含的头文件通常需要在编译时指定额外的搜索路径参数,例如 -I 参数。
相关问题
编译报错https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/master/GCC_4_9_DEPRECATION.md CHK scripts/mod/devicetable-offsets.h CHK include/generated/timeconst.h CHK include/generated/bounds.h CHK include/generated/asm-offsets.h CALL /mydisk/M23/kernel/msm-4.14/scripts/checksyscalls.sh CHK include/generated/compile.h GZIP kernel/config_data.gz CHK kernel/config_data.h CC drivers/fiio/aw32271_charge.o CC drivers/fiio/awinic_charger.o /mydisk/M23/kernel/msm-4.14/drivers/fiio/aw32271_charge.c:86:4: error: use of undeclared identifier 'AWINIC_LOG_NAME' aw_err("%s: i2c_read cnt=%d error=%d\n", ^ /mydisk/M23/kernel/msm-4.14/drivers/fiio/awinic_charger.h:6:2: note: expanded from macro 'aw_err' AWINIC_LOG_NAME, __func__, __LINE__, ##arg) ^atal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make[3]: *** [/mydisk/M23/kernel/msm-4.14/scripts/Makefile.build:361: drivers/fiio/aw32271_charge.o] Error 1
根据错误提示信息,这是一个编译错误,其中 /mydisk/M23/kernel/msm-4.14/drivers/fiio/aw32271_charge.c 文件的第 86 行出现了错误。错误信息显示使用了未声明的标识符 'AWINIC_LOG_NAME',而这个标识符在宏定义 aw_err 中被使用。
很明显,这是因为 awinic_charger.h 头文件中定义的 AWINIC_LOG_NAME 没有被正确引入所导致的错误。你可以检查一下代码中引入 awinic_charger.h 头文件的地方,看看是否有遗漏。另外,也可以检查一下是否正确配置了相关的编译选项。
此外,这个错误提示中还出现了 "fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated",这说明在编译过程中已经产生了太多的错误,导致编译被强制停止。因此,你需要先解决这个错误,然后再继续进行编译。
编译报错/mydisk/M23/kernel/msm-4.14/drivers/fiio/awinic_charger.h:6:2: note: expanded from macro 'aw_err' AWINIC_LOG_NAME, __func__, __LINE__, ##arg)fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make[3]: *** [/mydisk/M23/kernel/msm-4.14/scripts/Makefile.build:361: drivers/fiio/aw32271_charge.o] Error 1
根据错误提示信息,这是一个编译错误,其中 /mydisk/M23/kernel/msm-4.14/drivers/fiio/awinic_charger.h 文件的第 6 行出现了一个宏定义 aw_err。该宏定义包含了一些参数,其中 AWINIC_LOG_NAME 表示日志名称,__func__ 表示当前函数名,__LINE__ 表示当前代码行号,##arg 表示可变参数列表。
错误提示信息中还出现了 "fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated",这说明在编译过程中已经产生了太多的错误,导致编译被强制停止。
因此,你需要先解决这个 aw_err 宏定义的问题。根据错误提示信息来看,可能是在调用 aw_err 宏的时候传入的参数不正确导致的编译错误。你可以检查一下代码中调用 aw_err 宏的地方,看看传入的参数是否有误。
另外,关于编译过程中产生的错误数量过多的问题,可以考虑增加编译器的错误限制,或者找到并解决更多的编译错误。