问题描述
- error: implicit declaration of function `__sync_fetch_and_or'
- 用codeviz来生成linux内核的函数调用图
首先是编译内核,这里我们的目的是查看函数调用关系,并非安装新内核,所以直接
进行配置编译:
make menuconfig
make CC=/usr/local/gcc-graph/bin/gcc bzImage
make CC=/usr/local/gcc-graph/bin/gcc modules在进行到make CC=/usr/local/gcc-graph/bin/gcc modules这一步的时候出现如下错误提示:
opened dep file drivers/staging/line6/pcm.c.cdepn
drivers/staging/line6/pcm.c: In functionline6_pcm_start':
__sync_fetch_and_or'
drivers/staging/line6/pcm.c:92: error: implicit declaration of function
drivers/staging/line6/pcm.c:137: error: implicit declaration of function `__sync_fetch_and_and'
make[3]: *** [drivers/staging/line6/pcm.o] Error 1
make[2]: *** [drivers/staging/line6] Error 2
make[1]: *** [drivers/staging] Error 2
make: *** [drivers] Error 2这种情况有没有遇到过啊,如何解决的呢,急急急!
谢谢大家!!
解决方案
__sync_fetch_and_and这个函数没有引用他的头文件,或者在定义的地方没有EXPORT_SYMBOL出来
如果你想尽快编译完内核的话,make menuconfig的时候把这个模块给去掉,只编译你需要查看调用关系的那支驱动