嵌入式操作系统嵌入式交叉编译环境.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
库函数基本路径 /lib: 系统必备共享库 /usr/lib: 标准共享库和静态库 /usr/local/lib: 本地函数库 库文件搜索顺序 (1)首先在“LD_LIBRARY_PATH”环境变量所设置的路径下查找(一般都没有给此环境变量赋值); (2)搜索动态装载器在/etc目录下的缓存文件/etc/ld.so.cache(此文件由命令ldconfig创建更新)。(在Redhat 9中,直接由/etc/ld.so.conf文件配置)。 因此,如果要使用自己创建的共享库文件(静态库直接在编译时指定即可),则需要将共享库拷贝到想要搜索路径下或者指定该库的具体路径。 ldd命令 --查看到某可执行程序库清单 创建静态库 源文件信息。其中,“libhello.c”为要构建的库文件源文件,“libhello.h”为调用此库文件的头文件,“usehello.c”为测试程序。 生成目标文件 使用ar命令创建静态库 使用静态库 头文件 和库文件信息 使用此库文件 应用示例 编译 运行 共享库创建 共享库创建示例 查看源文件,“libhello.c”为要构建的库文件源文件,“libhello.h”为调用此库文件的头文件,“usehello.c”为测试程序。 构建共享库目标文件 编译共享库并创建连接 使用共享库 准备文件 头文件libhello.h:以知道有哪些函数,完成怎么样的功能,返回值以及参数情况。 库文件libhello.so.1.0及其链接libhello.so:库函数的二进制代码位置 文件内容 编译连接 运行 如果希望在使用连接器时不使用-Ldirectory标识就可以查找到该库,则可以采用以下方式之一: 把此库拷贝到/usr/lib或者/lib文件夹中,或者在此两个文件夹任意一个中创建一个到该库的快捷方式,并命名为libname.so。 如果库所在路径没有在/usr/lib和/lib文件夹下,需要将该路径添加到文件“/etc/ld.so.conf”中,每一行增加一个路径,完成以上设置后,然后运行ldconfig命令更新库信息。 Autoconf/Automake自动化工具 自动创建Makefile文件流程 * * * GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。我在下面只例举一些比较常用的参数: -symbols file -s file 从指定文件中读取符号表。 -se file 从指定文件中读取符号表信息,并把他用在可执行文件中。 -core file -c file 调试时core dump的core文件。 -directory directory -d directory 加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。 * * * 隐晦规则,make工具会根据.o文件自动推导出 .c文件,如:如果make看到whatever.o它会自动将whatever.c文件加入到依赖关系中 练习1(3) 使用gdb调试程序 (1)启动gdb程序 (gdb)gdb (2)读入调试程序 (gdb)file gexam (3)列出相应于正在执行的程序的原文件内容 (gdb)list (4)在程序a=0;处设置一个断点 (gdb)break 4(注:这里4 为程序a=0;所在程序的行号,若自己更改) (5)在程序printf(“the value of a=%d \n”,a);处设置一个断点 (6)执行该程序 (gdb)run (7)查看变量a的值 (gdb)print a (8)查看变量a的类型(gdb)whatis a (9)执行下一个源程序行(gdb)next (10)从断点开始继续执行到下一个断点 (gdb)continue (11)查看变量a的值(gdb) print a ,看看a是否有变化 (12)不停地执行(gdb)continue,直到程序结束。 (13)退出gdb quit 5 Linux下C语言开发工具: GDB调试器 练习2:程序功能为先显示一个字符串,再反序显示,使用GDB找出其中的错误并改正 #include stdio.h void my_print(char *string){ printf (The string is %s\n, string); } void my_print2 (char *string){ char *string2; int size, i; size = strlen (string); string2 = (char *) malloc

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档