我收到以下错误消息,我检查了文件,但不知道为什么或如何解决这些错误。请帮忙。
arch/arm/mach-msm/jtag-mm.o: In function `dbg_init_arch_data':
/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag-mm.c:279: multiple definition of `msm_jtag_save_cntr'
arch/arm/mach-msm/jtag.o:/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag.c:1085: first defined here
arch/arm/mach-msm/jtag-mm.o: In function `etm_init_arch_data':
/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag-mm.c:568: multiple definition of `msm_jtag_save_state'
arch/arm/mach-msm/jtag.o:/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag.c:1038: first defined here
arch/arm/mach-msm/jtag-mm.o: In function `msm_jtag_restore_state':
/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag-mm.c:585: multiple definition of `msm_jtag_restore_state'
arch/arm/mach-msm/jtag.o:/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag.c:1073: first defined here
arch/arm/mach-msm/jtag-mm.o: In function `dbg_init_arch_data':
/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag-mm.c:279: multiple definition of `msm_jtag_restore_cntr'
arch/arm/mach-msm/jtag.o:/home/sansari/WORKING_DIRECTORY/arch/arm/mach-msm/jtag.c:1085: first defined here
make[1]: *** [arch/arm/mach-msm/built-in.o] Error 1
我在这个链接上放了一份 jtag-mm.c
谢谢。这是jtag.c
注释掉 jtag.h 并重新编译后,我收到以下错误消息:
arch/arm/mach-msm/jtag-mm.c:790:2: error: implicit declaration of function 'msm_jtag_fuse_apps_access_disabled' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[1]: *** [arch/arm/mach-msm/jtag-mm.o] Error 1
make: *** [arch/arm/mach-msm] Error 2
@Peter - 谢谢。我明白你在说什么。行。让我试试。没关系 grep 评论:-) 我认为这是不可能的。
更新:谢谢。我可以看到现在是什么问题。现在我已经发布了 jtag.h、jtag-mm.c 和 jtag.c,您或许可以验证我认为的问题所在。正如彼得所提到的,变量被声明了两次。一次是 jtag.c,一次是 jtag-mm.c。例如,我看到以下行:
uint32_t msm_jtag_save_cntr[NR_CPUS];
uint32_t msm_jtag_restore_cntr[NR_CPUS];
在这两个文件中。但是我试图在一个文件中将它们注释掉,但由于该变量在函数的同一文件中使用,因此出现错误。那么处理这个问题的正确方法是什么?我可以在头文件中声明一次,然后从两个源文件中删除它吗?还是应该将减速保留在一个源文件中,并将其包含在另一个源文件中?
这是jtag.h的副本谢谢