когда модифицируется какой-либо драйвер ядра, emacs не выполняет для меня код автоматически
например. Когда вы наберете " struct devic " и " Mx company-complete ", я ожидаю, что целое слово "устройство" будет завершено, по крайней мере, или появится меню завершения. Но я получаю подсказку " Не найдено завершение " в эхо-записи erea.
Кто-нибудь сталкивался с такой же проблемой? Пожалуйста, помогите мне.
Некоторые советы также были бы очень благодарны.
Версия Clang:
Clang версия 7.0.1-9 +b1 (tags / RELEASE_701 / final) Цель: i686-pc-linux-gnu Модель потока: posix УстановленDir: / usr / bin
Версия Emacs:
GNU Emacs 26.1
Содержимое переменной "company-clang-arguments":
company-clang-arguments является переменнойопределено в «company-clang.el». Его значение равно ("-I / home / gnu / linux-5.3.6 / include /" "-I / home / gnu / linux-5.3.6 / arch / arm / include /") Исходное значение nil Local в буфереMakefile;глобальное значение равно nil
Значение этой переменной является локальным для каталога, устанавливается файлом '/home/gnu/linux-5.3.6/.dir-locals.el'.
Документация:Дополнительные аргументы для передачи в Clang при завершении. Файлы префиксов (-include ...) могут быть выбраны с помощью «company-clang-set-prefix» или автоматически с помощью специального «company-clang-prefix-guesser».
Вы можете настроить эту переменную.
Содержимое переменной «conpany-backends»:
company-backends - это переменная, определенная в «company.el». Его значение (company-c-headers company-bbdb company-eclim company-clang company-xcode company-cmake company-capf company-files (company-dabbrev-код компании-gtags company-etags company-Keywords) компания-странная компания-dabbrev)
Первоначальное значение было (company-bbdb company-eclim company-clang company-xcode company-cmake company-capf company-files (company-dabbrev-code company-gtags company-etags company-Keywords))company-oddmuse company-dabbrev)
Эта переменная безопасна как локальная переменная файла, если ее значение
удовлетворяет предикату 'company-safe-backends-p'.
Вот вывод буфера "clang-error"
Mon Oct 28 10:56:16 2019
clang failed with error 1:
/usr/bin/clang -fsyntax-only -Xclang -code-completion-macros -x c -I/home/gnu/linux-5.3.6/include/ -I/home/gnu/linux-5.3.6/arch/arm/include/ -Xclang -code-completion-at=-:230:7 -
In file included from <stdin>:7:
In file included from /home/gnu/linux-5.3.6/include/linux/kernel.h:13:
/home/gnu/linux-5.3.6/include/linux/log2.h:197:15: error: unknown type name '__attribute_const__'
static inline __attribute_const__
^
/home/gnu/linux-5.3.6/include/linux/log2.h:198:1: error: expected identifier or '('
int __order_base_2(unsigned long n)
^
In file included from <stdin>:7:
In file included from /home/gnu/linux-5.3.6/include/linux/kernel.h:15:
In file included from /home/gnu/linux-5.3.6/include/linux/printk.h:6:
/home/gnu/linux-5.3.6/include/linux/init.h:144:13: error: expected parameter declarator
extern char __initdata boot_command_line[];
^
/home/gnu/linux-5.3.6/include/linux/init.h:51:30: note: expanded from macro '__initdata'
#define __initdata __section(.init.data)
^
/home/gnu/linux-5.3.6/include/linux/init.h:144:13: error: expected ')'
/home/gnu/linux-5.3.6/include/linux/init.h:51:30: note: expanded from macro '__initdata'
#define __initdata __section(.init.data)
^
/home/gnu/linux-5.3.6/include/linux/init.h:144:13: note: to match this '('
/home/gnu/linux-5.3.6/include/linux/init.h:51:29: note: expanded from macro '__initdata'
#define __initdata __section(.init.data)
^
/home/gnu/linux-5.3.6/include/linux/init.h:144:24: error: expected function body after function declarator
extern char __initdata boot_command_line[];
^
/home/gnu/linux-5.3.6/include/linux/init.h:151:6: error: expected parameter declarator
void __init init_rootfs(void);
^
/home/gnu/linux-5.3.6/include/linux/init.h:50:27: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:151:6: error: expected ')'
/home/gnu/linux-5.3.6/include/linux/init.h:50:27: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:151:6: note: to match this '('
/home/gnu/linux-5.3.6/include/linux/init.h:50:26: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:151:6: error: expected function body after function declarator
void __init init_rootfs(void);
^
/home/gnu/linux-5.3.6/include/linux/init.h:50:39: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:290:6: error: expected parameter declarator
void __init parse_early_param(void);
^
/home/gnu/linux-5.3.6/include/linux/init.h:50:27: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:290:6: error: expected ')'
/home/gnu/linux-5.3.6/include/linux/init.h:50:27: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:290:6: note: to match this '('
/home/gnu/linux-5.3.6/include/linux/init.h:50:26: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:290:6: error: expected function body after function declarator
void __init parse_early_param(void);
^
/home/gnu/linux-5.3.6/include/linux/init.h:50:39: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:291:6: error: expected parameter declarator
void __init parse_early_options(char *cmdline);
^
/home/gnu/linux-5.3.6/include/linux/init.h:50:27: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:291:6: error: expected ')'
/home/gnu/linux-5.3.6/include/linux/init.h:50:27: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:291:6: note: to match this '('
/home/gnu/linux-5.3.6/include/linux/init.h:50:26: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
/home/gnu/linux-5.3.6/include/linux/init.h:291:6: error: expected function body after function declarator
void __init parse_early_options(char *cmdline);
^
/home/gnu/linux-5.3.6/include/linux/init.h:50:39: note: expanded from macro '__init'
#define __init __section(.init.text) __cold __latent_entropy __noinitretpoline
^
In file included from <stdin>:7:
In file included from /home/gnu/linux-5.3.6/include/linux/kernel.h:15:
/home/gnu/linux-5.3.6/include/linux/printk.h:145:24: error: expected parameter declarator
static inline __printf(1, 2) __cold
^
/home/gnu/linux-5.3.6/include/linux/printk.h:145:24: error: expected ')'
/home/gnu/linux-5.3.6/include/linux/printk.h:145:23: note: to match this '('
static inline __printf(1, 2) __cold
^
/home/gnu/linux-5.3.6/include/linux/printk.h:145:30: error: expected function body after function declarator
static inline __printf(1, 2) __cold
^
In file included from <stdin>:7:
In file included from /home/gnu/linux-5.3.6/include/linux/kernel.h:17:
In file included from /usr/include/i386-linux-gnu/asm/byteorder.h:5:
In file included from /home/gnu/linux-5.3.6/include/linux/byteorder/little_endian.h:5:
In file included from /home/gnu/linux-5.3.6/include/uapi/linux/byteorder/little_endian.h:13:
In file included from /home/gnu/linux-5.3.6/include/linux/swab.h:5:
In file included from /home/gnu/linux-5.3.6/include/uapi/linux/swab.h:7:
In file included from /home/gnu/linux-5.3.6/arch/arm/include/asm/swab.h:19:
/home/gnu/linux-5.3.6/arch/arm/include/uapi/asm/swab.h:28:15: error: unknown type name '__attribute_const__'
static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
^
/home/gnu/linux-5.3.6/arch/arm/include/uapi/asm/swab.h:28:8: error: 'inline' can only appear on functions
static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
часть моего init.el, выпущенного для компании:
(require 'company)
(add-hook 'after-init-hook 'global-company-mode)
(setq company-backends (delete 'company-semantic company-backends))
(define-key c-mode-map [(tab)] 'company-complete)
(define-key c++-mode-map [(tab)] 'company-complete)
(add-to-list 'company-backends 'company-c-headers)
и полная часть файла .dir-locals.el в /home/gnu/linux-5.3.6
((nil . ((company-clang-arguments . ("-I/home/gnu/linux-5.3.6/include/"
"-I/home/gnu/linux-5.3.6/arch/arm/include/")))))