怎样查找C语言的头文件

怎样查找C语言的头文件,第1张

分类: 电脑/网络 >> *** 作系统/系统故障

问题描述:

如果知道一个函数,怎样查找他的头文件?先谢谢各位了

解析:

C语言的课本后面好象有个附录,里面有各个头文件里面提供的所有功能函数,可以去查,不过,如果你知道你的函数的功能的大概范围就好查了。也可以在网络上查,可能会便捷许多。

比如你要查sin(x) 是属于哪个头文件里的

你就可以打开网上任何一个头文件函数列表,用IE上编辑->查找 输入 sin(x),让你的IE自动查到其所在位置,那么就能快捷的看到其对应的头文件拉。

说的不够详细,也可以再继续问我。不知道我讲清楚了没有 呵呵

一、compile-time库文件搜索路径

1.如果编译时指定了-L选项,就优先到-L指定的路径去查找库进行连接;

2.查找GCC的环境变量LIBRARY_PATH

3.到/bin /usr/lib /usr/local/lib去查找。这几个搜索路径在gcc下是默认的。

所以当我们要让自己添加的库文件让gcc能搜索到,有两种方法,一种就是用-L指定,一种就是将库复制到以上几个gcc默认搜索路径。

二、run-time库搜索路径

1.编译时用-Wl, -rpath指定的路径

Ex:

arm-none-linux-gnueabi-gcc -o helloword_arm helloword.c -Wl,-dynamic-linker=/system/lib/ld-linux.so.3,-rpath,/system/lib/

2.环境变量LD_LIBRARY_PATH指定的路径

3./etc/ld.so.conf指定的路径

4.默认的动态搜索库路径/lib /usr/lib

LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下:

LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录):

export LIBRARY_PATH=LIBDIR1:LIBDIR2:$LIBRARY_PATH

LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录):

export LD_LIBRARY_PATH=LIBDIR1:LIBDIR2:$LD_LIBRARY_PATH

举个例子,我们开发一个程序,经常会需要使用某个或某些动态链接库,为了保证程序的可移植性,可以先将这些编译好的动态链接库放在自己指定的目录下,然后按照上述方式将这些目录加入到LD_LIBRARY_PATH环境变量中,这样自己的程序就可以动态链接后加载库文件运行了。

区别与使用:

开发时,设置LIBRARY_PATH,以便gcc能够找到编译时需要的动态链接库。

发布时,设置LD_LIBRARY_PATH,以便程序加载运行时能够自动找到需要的动态链接库。

三、几个重要的命令

1)ldd bin_name

可以查看编译出来的可执行文件依赖的库。部署程序时,我们要把这些库拷贝出来,然后将这些库连同可执行文件拷贝到新的机器上,在/etc/ld.so.conf.d下添加对应的库文件搜索路径即可。

2.ldconfig命令

搜索/lib和/usr/lib以及/etc/ld.so.conf下列出来的所有路径的库,然后创建动态库的cache文件。当程序需要搜索库时就会搜索ld.so.cache里列出来的库。

所以当我们向系统添加新的库文件时,除了需要把库文件烤到/usr/local/lib等指定位置外,还需ldconfig一下来更新cache文件。

四、gcc头文件的搜索路径

1.优先搜索-I指定的路径

2.查找GCC的环境变量C_INCLUDE_PATH/CPLUS_INCLUDE_PATH/OBJC_INCLUDE_PATH指定的路径

3.查找默认的搜索路径/usr/include /usr/local/include

所有GCC的环境变量,我们都可以GCC的原有搜索路径上上面添加进我们自己的路径,例如

#增加.so搜索路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home//lib

#增加.a搜索路径

LIBRARY_PATH=$LIBRARY_PATH:/home/lib

#增加bin搜索路径

export PATH=$PATH:/home/bin

#增加GCC的include文件搜索路径

export C_INCLUDE_PATH=$C_INCLUDE_PATH:/home/include

-wall -pedantic

-wall编译时显示所有的警告信息,可以增加程序的健壮性和可移植性

-pedantic,以符合ANSI/ISO C 标准列出所有警告

这些文件的原型是可以看到的,在工程属性的对话框中,有一栏是“路径”。然后你按照include的路径就可以找到这些文件。

你上面所列出来的函数还有头文件是和开发环境有关系的,比如ICCAR

或者是AVRSTUDIO以及其他的开发环境,他们的函数名还有头文件都不一样。

所以应该是不会有什么书把所有环境中的这些定义全部列出,最多也就是我以上列出的比较常用的卡发环境。如果你想知道,要么按照以上方法找到,要么就看开发环境的help。

其实我个人觉得直接看源文件效果更好


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12025101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存