- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
求职应注意的礼仪 求职时最礼貌的修饰是淡妆 面试时最关键的神情是郑重 无论站还是坐,不能摇动和抖动 对话时目光不能游弋不定 要控制小动作 不要为掩饰紧张情绪而散淡 最优雅的礼仪修养是体现自然 以一种修养面对两种结果 必须首先学会面对的一种结果----被拒绝 仍然感谢这次机会,因为被拒绝是面试后的两种结果之一。 被拒绝是招聘单位对我们综合考虑的结果,因为我们最关心的是自己什么地方与用人要求不一致,而不仅仅是面试中的表现。 不要欺骗自己,说“我本来就不想去”等等。 认真考虑是否有必要再做努力。 必须学会欣然面对的一种结果----被接纳 以具体的形式感谢招聘单位的接纳,如邮件、短信 考虑怎样使自己的知识能力更适应工作需要 把走进工作岗位当作职业生涯的重要的第一步,认真思考如何为以后的发展开好头。 Thank you 库函数-写一个自己的库 步骤2:把它们编译成目标文件 步骤3:打包为静态库,并为静态库创建索引 也可以使用以下命令实现以上功能 * 库函数-写一个自己的库 库文件名都是以lib开头的,静态库以.a作为后缀,表示Archive。ar命令类似于tar命令,起一个打包的作用,但是把目标文件打包成静态库只能用ar命令而不能用tar命令。选项r表示将后面的文件列表添加到文件包,如果文件包不存在就创建它,如果文件包中已有同名文件就替换成新的。S是专用于生成静态库的,表示为静态库创建索引,这个索引被链接器使用。ranlib命令为静态库创建索引。 * 库函数-写一个自己的库 步骤4:添加源码文件mylib.c和common.h来使用这个库。测试一下 * 库函数-写一个自己的库 步骤5:使用这个库编译运行源码,查看结果。 参数-L告诉编译器去哪里找需要的库文件,-L.表示在当前目录。-l库名告诉编译器要链接什么库。注意,即使库文件就在当前目录,编译器也不会去找的,所以-L选项不能少。编译器默认会找的目录可以用-print-search-dirs 选项查看一下。 * 库函数-写一个自己的库 * 库函数-写一个自己的库 其中libraries就是库文件的搜索路径列表,各路径之间用:号隔开。编译器会在这些搜索路径以及-L选项指定的路径中查找用-l选项指定的库。编译器在查找时默认优先考虑共享库,如果希望编译器只链接静态库,可以指定-static选项。 链接共享库和链接静态库有什么区别?在链接共享库时只是指定了动态链接器和该程序所需要的库文件,并没有真的做链接,可执行文件中调用的库函数仍然是未定义符号,要在运行时做动态链接。而在链接静态库时,链接器会把静态库中目标文件取出来和可执行文件真正链接在一起。 思考题:静态库和动态的优缺点? * 库函数-写一个自己的库 把函数add.c和sub.c链接为一个动态库。 步骤1:把他们编译成目标文件add.o,sub.o 编译时可以使用同上一样的方法,但是建议使用-fPIC选项进行编译,这两种方法编译出的目标文件有一点不一样。使用后者可以使共享库各段的加载地址不定死,即可以加载到任意位置。一般我们在做共享库时使用后者进行编译目标文件。PIC(Position Independent Code) * 库函数-写一个自己的库 步骤2:编译生成共享库 步骤3:使用这个库编译 步骤4:运行应用程序,但是报错找不到共享目标 * 库函数-写一个自己的库 编译时没有问题,因为-L.选项指定了共享库在当前目录,编译器可以在当前目录下找到共享库liblily.so,而运行时却找不到了。那么运行时是在那些路径下找共享库呢?可以用ldd命令查看可执行文件依赖于哪些共享库。 * 库函数-写一个自己的库 Ldd可以模拟运行一遍app,在运行过程中做动态链接,从而得知这个可执行文件依赖于哪些共享库,每个共享库都在什么路径下,加载到进程地址空间的什么地址。 是动态链接器,它的路径是gcc在编译链接时用指定的。 的路径是由动态链接器在做动态链接时搜索到的。 这个共享库其实不存在于文件系统中,它是由内核虚拟出来的共享库,所以它没有对应的路径,它负责处理系统调用。总之,共享库的搜索路径由动态链接器决定,所以由于找不到我们自己建立的 库路径,程序报错。 * 库函数-写一个自己的库 解决方法1:在运行app时通过环境变量LD_LIBRARY_PATH把当前库所在的目录添加到共享库的搜索路径中。 但是此方法只能在当前终端有效,另外对于变量LD_LIBRARY_PATH尽量不要修改它。(问题:为什么?)
您可能关注的文档
最近下载
- 公路安全韧性提升技术指南(试行).docx
- 新媒体运营实务(第2版) 课件全套 张浩淼 第1--12章 初识新媒体--- 新媒体数据运营实操方法.pptx
- 部编人教版三年级上册语文全册教学设计(配2025年秋改版教材).pdf VIP
- 风电工程初步设计深度内容规定.pdf VIP
- 博物馆学概论课件:博物馆藏品鉴定、定名与定级.pptx VIP
- GB50565-2010 纺织工程设计防火规范.pdf VIP
- Midea 美的 BCD-258WTPZM(E)冰箱 说明书.pdf
- 一种水性聚氨酯分散体及水性胶黏剂.pdf VIP
- 公路工程项目安全生产管理制度.pdf VIP
- 山西省城镇教师支援农村教育工作登记表.docx VIP
文档评论(0)