怎么找linux内核源码剖析路径

随笔 - 90&
文章 - 1&评论 - 3&trackbacks - 0
我的博客:
最近看LINUX书籍时,根据书中代码找相应的函数或者结构定义相当吃力,根据网上资料按以下方法查找速度较快。
1.安装ctags
  在源代码目录下运行
  ctags -R
  这样,会递归生成当前目录下及其子目录的tags文件。
2.使用VIM根据tags文件查找函数或结构定义。
  1.在源码目录下查找
    vi -t tagname
  2.如果要在任意位置使用,则需要把该tags文件添加到~/.vimrc文件中
    set tags=/home/money/sda8/2.6232/tags  3.如果要在代码中实时跟踪,则光标移动到函数名上,使用CTRL+]键,按CTRL+t可以返回。
  如果要跟踪系统函数,使用shift+K可以自动跳转道光标所在函数的手册。
阅读(...) 评论()新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分16阅读权限10帖子精华可用积分16 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
白手起家, 积分 16, 距离下一级还需 184 积分
帖子主题精华可用积分16 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
论坛徽章:0
我在编译项目代码时候,在我的Linux机子上,用make,找不到内核路径?
[root@localhost wifi-1.8.6d]# make
/bin/sh: line 0: cd: /lib/modules/2.6.18-8.el5xen/build: 没有那个文件或目录
Makefile.inc:89: *** /lib/modules/2.6.18-8.el5xen/build is missing, please set KERNELPATH。 停止。
我在 cd: /lib/modules/2.6.18-8.el5xen下看的时候,确实没有build目录,现在怎么办?是修改makefile还是怎么办?请高手指教
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分874阅读权限20帖子精华可用积分874 信誉积分104 专家积分0 在线时间831 小时注册时间最后登录
丰衣足食, 积分 874, 距离下一级还需 126 积分
帖子主题精华可用积分874 信誉积分104 专家积分0 在线时间831 小时注册时间最后登录
论坛徽章:0
ln -s YOUR_KERNEL_SRC /lib/modules/2.6.18-8.el5xen/build
YOUR_KERNEL_SRC maybe /usr/src/linux
UID空间积分0 积分19阅读权限10帖子精华可用积分19 信誉积分154 专家积分0 在线时间26 小时注册时间最后登录
白手起家, 积分 19, 距离下一级还需 181 积分
帖子主题精华可用积分19 信誉积分154 专家积分0 在线时间26 小时注册时间最后登录
论坛徽章:0
jiangwei1999
& & 直接把kerneldir指定为绝对路径
UID9089599空间积分0 积分781阅读权限20帖子精华可用积分781 信誉积分100 专家积分0 在线时间456 小时注册时间最后登录
丰衣足食, 积分 781, 距离下一级还需 219 积分
帖子主题精华可用积分781 信誉积分100 专家积分0 在线时间456 小时注册时间最后登录
论坛徽章:0
进入Server目录
rpm -ivh kernel-devel-2.6.18-8.el5xen.rpm
Nothing could stop you except yourself!
UID9089599空间积分0 积分781阅读权限20帖子精华可用积分781 信誉积分100 专家积分0 在线时间456 小时注册时间最后登录
丰衣足食, 积分 781, 距离下一级还需 219 积分
帖子主题精华可用积分781 信誉积分100 专家积分0 在线时间456 小时注册时间最后登录
论坛徽章:0
你都没有装源码包怎么可能会找到?
Nothing could stop you except yourself!
UID空间积分0 积分515阅读权限20帖子精华可用积分515 信誉积分100 专家积分0 在线时间13 小时注册时间最后登录
丰衣足食, 积分 515, 距离下一级还需 485 积分
帖子主题精华可用积分515 信誉积分100 专家积分0 在线时间13 小时注册时间最后登录
论坛徽章:0
UID空间积分0 积分17阅读权限10帖子精华可用积分19 信誉积分103 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 17, 距离下一级还需 183 积分
帖子主题精华可用积分19 信誉积分103 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
进入Server目录
rpm -ivh kernel-devel-2.6.18-8.el5xen.rpm
可以试试这个
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处LINUX内核源码目录结构分析和配置_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
LINUX内核源码目录结构分析和配置
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
你可能喜欢编译Android系统源码和内核源码_Linux编程_Linux公社-Linux系统门户网站
你好,游客
编译Android系统源码和内核源码
来源:Linux社区&
作者:jiangwei
把我之前编译系统源码和内核源码的过程记录一下,因为这个过程真的是受益匪浅,看重的不是结果,主要是过程,在这个过程中,我感觉最大的收获就是学习的耐心和毅力,因为在这个过程中那个问题就像是雨点似的天天打在你的脸上,虽然现在网上有很多文章介绍怎么去操作,但是我说句真心话,那些只能提供参考,因为你的工作环境毕竟和他不一样,所以等你按照他的步骤去操作的时候还是会遇到很多问题,当然我写这篇文章也不是说我的方法就是一定可以的,我只能说我是成功了,所以我只是想记录一下,以后可以进行翻阅查看,主要的还是要看自己的毅力和解决问题的能力了,好了不多说了,说正事吧~~
首先我们来看一下编译Android系统源码
第一:我们知道Android系统是基于Linux开发的,所以我们想编译Android系统源码的话,就必须有一个Linux系统,这里我使用了 64位的系统,这个镜像文件的下载地址是: 链接: /s/1dEq7SiP 密码: fach
安装Ubuntu系统不用说了吧,看这里
问题一:至于我为什么要使用64位系统,因为在后面我会遇到一个问题,就是我第一次安装的是32位的系统,结果在编译的过程中遇到一个问题就是:
ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-ar only run on 64-bit linux
编译不通过的,下面的这篇文章就是说怎么解决上的问题,主要就是修改一些指定的文件
但是很悲剧的是:我按照这个方法操作,并没有成功,那怎么办呢?我最后选择了重装了一个64位的系统,但是这次就没有用虚拟机了,直接安装到电脑中的。
问题二:安装的时候我先后卸载在安装系统有好几次,主要原因是第一次编译没经验,开始的时候就分配了20G的空间,结果编译的时候傻了,完全不够,所以我直截了当将电脑的200G的空间都分配出去了
那么安装系统完之后,还有一个问题,当我再去使用同一个方式去下载Android源码的时候,发现总是连接不上了,感觉Google退出中国了,源码也很难下到了,中间只有大约一个月的时间,就不可以下载了,好假,尝试过各种方法,我还买VPN,结果还是不行,那么怎么办呢?之前是有源码的,但是在虚拟机中,这时候就需要将虚拟机中的源码拷贝出来了,那么怎么从虚拟机中拷贝文件呢?这个很简单的,我用的VM的,他能够设置共享文件夹(具体方法可以搜索一下),但是又有一个问题来了,当时在虚拟机中下载的是Android4.4源码,大约有18G,我就尝试拷贝了,结果发现电脑最好拷贝死机了,主要是因为小文件太多了,大约有60万个,电脑配置也不好,所以尝试了几次都是死机了,那拷贝不出来怎么办呢?问题都是得解决的,突然想到了压缩一下在拷贝:
通过上面的一篇文章中,压缩拷贝,结果发现效果很不错,而且压缩也是很快的,这下拷贝就顺利了
至此我们解决了系统问题和源码问题
注意:这里所说的源码问题不是指下载源码的问题,我会在最后面说一下现在如何能够得到相应的Android源码,反正从google上去下载我是不相信了。所以我提供了我已经下载好并且打成压缩包的连接, android-4.0.3_r1-.tar.bz2 下载见
只需要进行解压即可,关于解压缩Linux文件的话,可以查看
上面的前奏都做好了,下面就来进行编译操作
第一步:在此之前还需要安装一些辅助工具,防止在安装的时候提示错误,当然我们可以现在不安装,等到安装的时候会提示相应的错误,到时候我只需要针对性的去安装,但是那样在编译的过程中会很不爽的,所以我还是先把这些工作做了
首先需要安装JDK,请看
当JDK安装完毕之后,下面就需要来安装一下编译库了:
sudo apt-get install gnupg flex bison gperf libsdl1.2-dev libesd0-dev sudo apt-get install libwxgtk2.6-dev squashfs-tools build-essential& sudo apt-get install zlib1g-dev pngcrush schedtool ia32-libs libncurses5-dev
当然这些是必须要安装的,但是不是一定在编译的时候就没有问题,所以我们在编译的时候遇到什么问题的时候我们再去进行解决
今天在Ubuntu 11.04(64位)编译Android2.3源码时,遇到各种各样的问题。不是缺这个,就是少那个。现把这些问题和解决方法罗列出来,供大家参考
普遍错误:1.错误:/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directorymake: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1解决:sudo apt-get install libc6-dev-i386
2.错误:make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] error 1解决:sudo apt-get install g++-multilib
3.错误:external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directorycompilation terminated.make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1解决:sudo apt-get install zlib1g-dev
4.错误:/usr/bin/ld: cannot find -lzcollect2: ld returned 1 exit statusmake: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1解决:sudo apt-get install lib32z1-dev
5.错误:bison -d& -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y/bin/bash: bison: command not foundmake: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127解决:sudo apt-get install bison
6.错误:Lex: aidl &= frameworks/base/tools/aidl/aidl_language_l.l/bin/bash: flex: command not foundmake: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127解决:sudo apt-get install flex
7.错误:/usr/bin/ld: cannot find -lncursescollect2: ld returned 1 exit statusmake: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1解决:sudo apt-get install lib32ncurses5-dev
8.错误:prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directorycompilation terminated.make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o] Error 1解决:sudo apt-get install libx11-dev
9.错误:sh: gperf: not foundcalling gperf failed: 32512 at ./makeprop.pl line 96.make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] Error 25make: *** Deleting file out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'解决:sudo apt-get install gperf
致命错误: bits/predefs.h:没有那个文件或目录 编译中断
解决方法:sudo apt-get install gcc-multilib
还有一个原因:
Ubuntu 11.10以上的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.3
sudo apt-get install gcc-4.4sudo apt-get install g++-4.4
总结错误:
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when searching for -lz/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.a when searching for -lz/usr/bin/ld: skipping incompatible //usr/lib/libz.so when searching for -lz/usr/bin/ld: skipping incompatible //usr/lib/libz.a when searching for -lz/usr/bin/ld: cannot find -lzcollect2: ld returned 1 exit statusmake: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
缺少lib32z1-dev,安装即可:apt-get install lib32z1-dev
2.错误编译时出现 /usr/include/gnu/stubs.h:7: fatal error: gnu/stubs-32.h: No such file or directory 错误信息/usr/include/gnu/stubs.h:7: fatal error: gnu/stubs-32.h: No such file or directorycompilation terminated.make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] Error 1解决办法:
缺少libc开发包,安装即可: apt-get install libc6-dev-i386
3.错误Android编译遇到错误/usr/bin/ld: cannot find -lstdc++的解决解决办法:
缺少g++-multilib库,安装即可: apt-get install g++-multilib&
最后发现的一个错误:
make android 时的 libwebcore.so error
解决办法:增加文件swap
好吧在这上面的工作都做完了,错误也都解决了,编译也完成了,我是在晚上进行编译的,第二天好了,当看到结果的时候真的很开心:
Target system fs image:& & out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.imgInstall system fs image: out/target/product/generic/system.imgTarget ram disk: out/target/product/generic/ramdisk.imgTarget userdata fs image: out/target/product/generic/userdata.imgInstalled file list: out/target/product/generic/installed-files.txt
那么下面就运行一下编译的结果吧:
1. 设置环境变量:USER-NAME@MACHINE-NAME:~/Android$ export PATH=$PATH:~/Android/out/host/linux-x86/bin& USER-NAME@MACHINE-NAME:~/Android$ export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic其中,~/Android/out/host/linux-x86/bin有我们要执行的emulator命令,而~/Android/out/target/product/generic是Android镜像存放目录,下面执行emulator命令时会用到。2. 运行模拟器。USER-NAME@MACHINE-NAME:~/Android$ emulator模拟器运行需要???个文件,分别是Linux Kernel镜像zImage和Android镜像文件system.img、userdata.img和ramdisk.img。执行emulator命令时,如果不带任何参数,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img,也就是我们刚刚编译出来的镜像问题。当然,我们也可以以指定的镜像文件来运行模拟器,即运行emulator时,即:USER-NAME@MACHINE-NAME:~/Android$ emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
但是又来了一个错误:
emulator: ERROR: You did not specify a virtual device name, and the systemdirectory could not be found.If you are an Android SDK user, please use '@&name&' or '-avd &name&'to start a given virtual device (see -help-avd for details).Otherwise, follow the instructions in -help-disk-images to start the emulator
解决方法:
进入到Android源码目录中执行:
source build/envsetup.sh
lunch sdk-eng
然后再执行:
可以启动模拟器
再次运行,好吧有结果了:
编译完Android源码之后,写还得再来看看如何编译Android内核源码,为什么要编译Android内核源码呢?这个是为了后续的工作做准备,后面会说到的,其实我们上面编译的Android源码他的内核源码Google已经编译好了,存放在:源目录/prebuilt/android-arm/kernel/kernel-
下面我们就来看看如何编译内核源码吧,同样如此,想编译内核源码的话,我们需要内核源码,又是一件痛疼的事,网上有很多资源都是说使用goldfish版本的,然后就去:git clone /kernel/goldfish.git反正我是下载失败,原因和下载源码是一样的,google服务器连接失败,那怎么办呢?当时我是没有办法了,就去各种搜索,结果有人说goldfish是连接不上了,有人将内核源码放到github上了,地址如下:/android/kernel_common
如果下载失败的话,我已经下载好了,可以去以下的连接去下载: 链接: /s/1dEq7SiP 密码: fach
我就去下载了,大约几百M吧,下载下来之后,就进行编译吧,在编译之前我们需要修改点东西:
修改文件夹中的Makefile文件中的编译环境
ARCH ?= (SUBARCH)CROSS_COMPILE ?=
修改成ARCH ?= armCROSS_COMPILE ?= arm-eabi-
采用的是arm体系结构,交叉编译使用的是arm-eabi-XXX工具,这个值只是个前缀
下面我们就来编译吧,进入到文件夹中进行编译结果发现,说找不到指定的arm-eabi-gcc工具(这个错误发生在我编译Android4.4版本的时候,因为这个版本的源码中找不到指定的prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin目录,但是最后编译Android2.3.7版本的话就有了,所以针对于4.4版本没有的话,我们怎么办呢?
下载地址:
------------------------------------------分割线------------------------------------------
在 2016年\1月\编译Android系统源码和内核源码\
下载方法见
------------------------------------------分割线------------------------------------------
下载下来之后一般是存放到/usr/lib目录中,然后修改一下环境变量,这个可以参考前面配置JDK环境变量的方法
首先需要:make goldfish_defconfig
但是找不到指定文件,发现这个文件只在goldfish版本中,而我们下载的是kernel_common,这时候我们可以:
make menuconfig
然后选择对应的配置,但是问题又来了,哪些选项是必选的,哪些是不需要选的,反正最后编译总是失败,搞伤的了,所以还是得去找goldfish版本的(我上面之所以介绍了kernel_common版本的,就是记录一下我操作的过程,虽然最后失败了),不过运气挺好的,最后还真的被我找到了,具体的地址我记得不太清楚了,但是我放到网盘了,里面有相应的说明,goldfish下载地址:
链接: /s/1dEq7SiP 密码: fach
下载下来之后,可以编译了,
make goldfish_defconfig
这个编译的过程很快,不到一个小时吧
OBJCOPY arch/arm/boot/zImageKernel: arch/arm/boot/zImage is ready
这样就编译成功了,那么我就是用这个内核镜像来启动模拟器吧:
1. 在启动模拟器之前,先设置模拟器的目录到环境变量$PATH中去:USER-NAME@MACHINE-NAME:~/Android$ export PATH=$PATH:~/Android/out/host/linux-x86/bin2. 设置ANDROID_PRODUCT_OUT环境变量:USER-NAME@MACHINE-NAME:~/Android$ export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic3. 在后台中指定内核文件启动模拟器:USER-NAME@MACHINE-NAME:~/Android$& emulator -kernel ./kernel/common/arch/arm/boot/zImage &
不幸的是模拟器是可以启动但是总是黑屏,而且是用adb shell也连接不上设备,这可怎么办,都快成功了,然后就去网上再次找答案,找到了:原因是我的源码是4.4版本的,2.3版本以后的体系架构是用的是armv7了,所以不是:
make goldfish_defconfig
make goldfish_armv7_defconfig
再次编译,成功再次是用镜像文件启动模拟器,草,傻眼了,结果还是失败太蛋疼了,然后各种搜索,原因上面的解答,但是我已经修改了,还是不行(这个问题纠结了两个礼拜,我差点就放弃了),最后想是不是源码的问题,也只能这么想了,所以又去晚上找2.3.7的源码,别说着了一天,真是不负有心人呀,还真的被我找到了,而且找到很多个版本,都是压缩包的形式,在这里我真心的要感谢这个人,懂得资源分享,
Android2.3.7源码下载地址: & 文件名为:Android_2.3.7.tar.gz
然后我就很兴奋的重新编译了Android2.3.7版本的源码(其实我当时有点担心,因为我现在的系统是64位的,不知道这个源码是多少位的,但是最后编译成功了,这个版本是64位的,也就不需要重新换系统了),因为有了之前的编译过程,好多问题都提前解决了,编译过程中是很顺利的,也是在晚上编译的结果也是成功了,这次我们在通过上面的方式来编译内核,然后启动模拟器,擦,结果可以了:
成功了,这次是真的成功了,好感动,好激动呀,两次挫折两次激动~~
总结:其实我们可以回顾一下上面的过程,个人感觉没有任何技术可言,我遇到的最大的问题就是资源获取不到的问题,所以我将使用到的资源都给出了下载链接,同时感觉遇到问题不可以胆怯,要勇敢面对~~
PS:上面的过程是我成功之后的感想和操作,如果亲们按照我这种方式不成功的话,请留言~~我会帮助看看~~
注:这篇文章其实没什么内容,但是里面有很多相关资源的下载连接,这个真的很有价值的~~
更多Android相关信息见 专题页面
本文永久更新链接地址:
相关资讯 & & &
& (02/04/:27)
& (11/01/:38)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款如何确定某个函数在Linux内核代码中的位置_百度知道
如何确定某个函数在Linux内核代码中的位置
如果要看这两个函数在标准库中的定义用ctags或cscope生成索引.h,cscope,可以跳转到函数定义,man malloc,声明见stdlib。如果仍然找不到,可以用ctags,si或grep。windows下用source insight也可,然后查找函数定义,用grep -r 搜索关键字,atoi和malloc在C的标准库中有定义。1.安装ctags在源代码目录下运行ctags -R这样,会递归生成当前目录下及其子目录的tags文件。2.使用VIM根据tags文件查找函数或结构定义。1.在源码目录下查找vi -t tagname2.如果要在任意位置使用,则需要把该tags文件添加到~/.vimrc文件中set tags=/home/money/sda8/2.6232/tags3.如果要在代码中实时跟踪,则光标移动到函数名上,使用CTRL+]键,按CTRL+t可以返回。如果要跟踪系统函数,使用shift+K可以自动跳转道光标所在函数的手册。
其他类似问题
为您推荐:
提问者采纳
man atoi. 如果要看这两个函数在标准库中的定义用ctags或cscope生成索引.h,cscope,可以跳转到函数定义,man malloc,声明见stdlib。如果仍然找不到。同样可以用ctags,si或grep。windows下用source insight也可,然后查找函数定义,用grep -r 搜索关键字,atoi和malloc在C的标准库中有定义。如果没记错。标准库的函数都可以man,可以下载glibc源代码
提问者评价
其他5条回答
在linux控制台输入:man atoi即可知道atoi函数的定义同理,输入:man malloc即可知道malloc的定义
到网上找到POSIX标准,里面有全部基本的函数的定义以及位置,如果找不到再找我要吧
标准C库,在glib
里面,内核好像用的是kmalloc这个函数;而atoi 好像在string.c里面。
用ctags或cscope生成索引,可以跳转到函数定义。windows下用source insight也可。如果仍然找不到,用grep -r 搜索关键字。如果没记错,atoi和malloc在C的标准库中有定义,声明见stdlib.h。标准库的函数都可以man。 man atoi,man malloc. 如果要看这两个函数在标准库中的定义,可以下载glibc源代码,然后查找函数定义。同样可以用ctags,cscope,si或grep。
不会 不会不会
linux内核的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 找不到网络路径 的文章

 

随机推荐