ld链接
SundayO
个人不错
展开
-
动态链接、静态链接
静态链接:在Linux系统中,ld链接器将汇编器编译出来的目标文件和静态库里的.a文件链接生成可执行文件。静态库中的.a文件的代码会在静态链接过程中添加到可执行文件中,可执行文件会变得很大。动态链接与静态链接不同,Linux系统的ld链接器会将动态库.so文件进行符号重定位生成可执行文件,动态库.so文件并不添加到可执行文件中。运行可执行文件,会自动链接到内存里的.so动态库文件。实验...原创 2019-09-10 09:49:45 · 377 阅读 · 0 评论 -
ld、ld.so命令和ld.so.conf配置文件
ld.so.conf配置文件动态装载器(dynamic loader)程序如何进行动态链接呢?在/etc/ld.so.conf文件中存放着需要动态加载的目录,使用ldconfig就可以将ld.so.conf中的指定目录的库文件加载到内存中,并记录/etc/ld.so.cache中。ld.so.1文件就可以在高速缓存中训中动态库文件,提高访问速度。例子:在ld.so.conf文件中包含ld...原创 2019-09-10 13:31:15 · 8497 阅读 · 0 评论 -
CFLAGS、CXXFLAGS和LDFLAGS、LIBS和-L、-rpath、-rpath-link和LD_LIBRARY_PATH
日常工作实践中,可以通过变量和编译器配合使用,控制编译器的行为。这些参数必须在gcc命令行中显示指定,使用export命令指定这些变量是无效的。CLFAGS和CXXFLAGSCLFAGS表示C编译器的选项,CXXFLAGS 表示C++编译器的选项,用于指定头文件(.h)的路径。例子:CFLAGS=-I/usr/include -I/path/include大多数程序和库在编译时默认的优...原创 2019-09-14 14:31:58 · 2870 阅读 · 1 评论 -
readelf命令、objdump命令、gcc内置宏定义
readelf命令查看ELF格式的文件信息,常见的文件rpm -q --requires 软件名查询软件的依赖的软件包,版本号,库文件readelf -s 库文件 显示库文件的符号表gcc内置宏定义查看gcc定义的所有预定义宏gcc -E -dM - < /dev/null在编译时添加-D选项:-DTEST表示定义宏TEST...原创 2019-10-11 16:27:39 · 617 阅读 · 0 评论