При сборке модуля ядра для AMDPowerProfiler-7.02 я обнаружил эту ошибку
make -C /lib/modules/4.18.0-24-generic/build M=/usr/src/AMDPowerProfiler-7.02 EXTRA_CFLAGS="-I/usr/src/AMDPowerProfiler-7.02/inc -DKERNEL_MODULE -DLINUX -D_LINUX " modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-24-generic'
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrAccessPmcData.o
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrCollectSmuCounters.o
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrCommonConfig.o
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrCommonHelper.o
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrCounterAccessInterface.o
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrDriverUtils.o
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrHwAccessInterface.o
CC [M] /usr/src/AMDPowerProfiler-7.02/src/PwrProfCoreUtils.o
In file included from /usr/src/AMDPowerProfiler-7.02/inc/PwrProfCoreUtils.h:12:0,
from /usr/src/AMDPowerProfiler-7.02/src/PwrProfCoreUtils.c:9:
./arch/x86/include/asm/ftrace.h: In function ‘arch_syscall_match_sym_name’:
./arch/x86/include/asm/ftrace.h:58:10: error: implicit declaration of function ‘strcmp’ [-Werror=implicit-function-declaration]
return !strcmp(sym + 3, name + 3) ||
^~~~~~
./arch/x86/include/asm/ftrace.h:59:5: error: implicit declaration of function ‘strncmp’ [-Werror=implicit-function-declaration]
(!strncmp(sym, "__x64_", 6) && !strcmp(sym + 9, name + 3)) ||
^~~~~~~
cc1: some warnings being treated as errors
Когда я искал ftrace.h
, я обнаружил, что это исходный файл ядра.Итак, я открыл /usr/src/linux-headers-4.18.0-24/arch/x86/include/asm/ftrace.h
, который соответствует номеру ядра, и добавил
#include <string.h>
поверх него.Далее я получаю эту ошибку:
./arch/x86/include/asm/ftrace.h:2:10: fatal error: string.h: No such file or directory
#include <string.h>
Я знаю, что связано с g ++.Как я могу это исправить?