不能使用astyle对Linux的Kconfig和Makefile进行排版,会导致编译错误

2023-10-16 18:37:16 浏览数 (3)

代码排版工具

不同人代码的排版习惯不一样。遇到自己不喜欢的格式,看起来比较麻烦。可以使用astyle对代码进行排版。 我喜欢以"otbs"格式的排版。命令如下:

代码语言:javascript复制
astyle -s --style=otbs *.c 
astyle -s --style=otbs *.h

错误排版

一次使用时,不小心对所有文件进行了排版。

代码语言:javascript复制
hankf@XSZGS4:xilinx$  astyle -s --style=otbs *

hankf@XSZGS4:xilinx$ ls -l -h
total 188K
-rw-rw-r-- 1 hankf hankf 2.1K Jun 20 15:09 Kconfig
-rw-r--r-- 1 hankf hankf 2.1K Jun 16 17:08 Kconfig.orig
-rw-rw-r-- 1 hankf hankf 1.5K Jun 20 14:57 Makefile
-rw-r--r-- 1 hankf hankf  661 Jun 16 17:08 Makefile.orig
-rw-rw-r-- 1 hankf hankf 3.6K Jun 20 14:18 xilinx-dp-card.c
-rw-rw-r-- 1 hankf hankf 4.6K Jun 20 14:18 xilinx-dp-codec.c
-rw-rw-r-- 1 hankf hankf 2.3K Jun 20 14:18 xilinx-dp-pcm.c
-rw-rw-r-- 1 hankf hankf  27K Jun 20 14:52 xlnx_formatter_pcm.c
-rw-rw-r-- 1 hankf hankf 8.1K Jun 20 15:03 xlnx_i2s.c
-rw-rw-r-- 1 hankf hankf  15K Jun 20 14:57 xlnx_pl_snd_card.c
-rw-rw-r-- 1 hankf hankf  15K Jun 20 14:50 xlnx_pl_snd_card.c.orig
-rw-rw-r-- 1 hankf hankf  18K Jun 20 15:04 xlnx_sdi_audio.c
-rw-rw-r-- 1 hankf hankf  383 Jun 20 14:31 xlnx_snd_common.h
-rw-rw-r-- 1 hankf hankf  12K Jun 20 15:05 xlnx_spdif.c

再编译Linux是,得到下列错误。

代码语言:javascript复制
NOTE: linux-xlnx: compiling from external source tree workspace/linux-xlnx
ERROR: linux-xlnx-5.4 git999-r0 do_compile_kernelmodules: oe_runmake failed
ERROR: linux-xlnx-5.4 git999-r0 do_compile_kernelmodules: Execution of '..../linux-xlnx/5.4 git999-r0/temp/run.do_compile_kernelmodules.3904' failed with exit code 1:
make: Entering directory '..../linux-xlnx/5.4 git999-r0/linux-xlnx-5.4 git999'
  GEN     Makefile
scripts/kconfig/conf  --syncconfig Kconfig
sound/soc/xilinx/Kconfig:13:warning: ignoring unsupported character '.'
sound/soc/xilinx/Kconfig:14: syntax error
sound/soc/xilinx/Kconfig:13: unknown statement "support"
sound/soc/xilinx/Kconfig:14:warning: ignoring unsupported character '.'
sound/soc/xilinx/Kconfig:14: unknown statement "audio"
make[3]: *** [workspace/linux-xlnx/scripts/kconfig/Makefile:73: syncconfig] Error 1
make[2]: *** [workspace/linux-xlnx/Makefile:567: syncconfig] Error 2
make[1]: *** [workspace/linux-xlnx/Makefile:678: include/config/auto.conf.cmd] Error 2
make[1]: *** [include/config/auto.conf.cmd] Deleting file 'include/config/tristate.conf'
make: *** [workspace/linux-xlnx/Makefile:179: sub-make] Error 2
make: Leaving directory '..../linux-xlnx/5.4 git999-r0/linux-xlnx-5.4 git999'

恢复

幸好astyle对文件进行了备份。之间使用 Kconfig.orig、Makefile.orig恢复Kconfig和Makefile。再次编译,又能正常编译了。

代码语言:javascript复制
hankf@XSZGS4:xilinx$ cp Kconfig.orig  Kconfig

hankf@XSZGS4:xilinx$ cp Makefile.orig  Makefile

0 人点赞