2关于Linux下编写和编译程序的几个问题

上传人:tia****nde 文档编号:36841585 上传时间:2018-04-03 格式:DOCX 页数:4 大小:33.82KB
返回 下载 相关 举报
2关于Linux下编写和编译程序的几个问题_第1页
第1页 / 共4页
2关于Linux下编写和编译程序的几个问题_第2页
第2页 / 共4页
2关于Linux下编写和编译程序的几个问题_第3页
第3页 / 共4页
2关于Linux下编写和编译程序的几个问题_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《2关于Linux下编写和编译程序的几个问题》由会员分享,可在线阅读,更多相关《2关于Linux下编写和编译程序的几个问题(4页珍藏版)》请在金锄头文库上搜索。

1、 http:/ 关于 Linux 下编写和编译程序的几个问题当前,虽然 Linux 还不很普及,在 Linux 下编写和编译程序的人不多。但是我相信,随着 Linux 性能的不断提升和逐渐普及,会有许多自由软件出现,也会有许多人成为 Linux 下 的程序员。我结合自己的经验,介绍一下 Linux 下编写和编译程序所要注意的几个问题, 奉献给希望为 Linux 的发展作出贡献的人们。Linux 下怎样编译程序?大多数 Linux 程序都是由 C 语言编写的并由 GNU C 编译而成。现在 GCC 是各种发行套件 的一部分。有关最新 GCC 编译器的版本、文章和补丁请看 ftp:/ftp.gnu

2、.org/pub/gnu/。由 C编写的程序必须由 GNU C+编译,GNU C+也是各种发行套件的一部分,在以上 网址也有最新版本和补丁。编译 2.0.x 的内核需要 2.7.2.x 版本的 GCC,如用象 GCC 2.8.x, EGCS, or PGCC 别的编 译器编译内核可能产生不可预想的后果。怎样移植其它 Unix 程序到 Linux 上?总得来说,Unix 上的程序不需要做改动,只要简单的按照提示就可以移植到 Linux 上, 如果安装过程中出现错误信息,而你又不知道怎么处理,你可以猜或略去,不过这样产生 的程序往往带有 bug。所以最好还是问一下有经验的人。如果要从 BSD-is

3、h 移植程序,试一试在编译时加上-I/usr/include/bsd 和 ?lbsd 命令。什么是 ld.so,从哪可以找到它?http:/ ld.so 是动态函数库装载器。过去,使用共享函数库的程序在原代码开头使用约 3K 的空 间来寻找和加载共享函数库,现在,这段代码被加进了一个特殊共享函数库/lib/ld.so, 所有的程序都可以使用该共享库,这样就节省了磁盘空间,而且升级方便。ld.so 可以从以下网址得到 tsx-11.mit.edu/pub/linux/packages/GCC/。怎样升级库函数而不使系统崩溃?注意:进行此操作应该养成做备份的习惯,因为这项操作很容易出错。如果你升级

4、象 libc4 这样的老函数库,这个过程会变得非常困难。而且你应该在该系统 上让 libc4 和 libc5 共存,因为,有些老程序还需要它。升级 libc5 也一样。升级动态库的问题常出现在当你移走老的函数库时,用来升级的程序也运行不了了。有 许多方法可以解决这个问题。一个方法就是暂时备份一下运行程序所需函数库,它们一般 在/lib/、/usr/lib/、 /usr/local/lib/、或其它的地方,在文件/etc/ld.so.conf 中都 有详细记录。例如,当你升级 libc5 时,目录/lib/中有如下文件libc.so.5libc.so.5.4.33libm.so.5libm.so

5、.5.0.9这些是 C 函数库和数学库,拷贝它们到文件/etc/ld.so.conf 中含有的其它的目录,如 /usr/lib/中:http:/ cp -df /lib/libc.so.5* /usr/lib/cp -df /lib/libm.so.5* /usr/lib/ldconfig一定要记住运行 ldconfig 来升级函数库的配置文件。文件 libc.so.5 和 libm.so.5 是实际库文件的链接文件,当你升级的时候,如果老的链 接文件存在,新的链接不会产生,除非你使用 CP 命令的-f 选项。CP 的-d 选项只复制链接 文件,不复制原文件。如果你需要直接覆盖链接,使用 ln

6、 命令的选项-f。例如,拷贝新的库函数覆盖旧的。先对新的函数库做一个链接,然后把函数库和链接一 起拷贝到/lib/中,命令如下:ln -sf ./libm.so.5.0.48 libm.so.5ln -sf ./libc.so.5.0.48 libc.so.5cp -df libm.so.5* /libcp -df libc.so.5* /lib重申一下,拷贝完别忘记运行 ldconfig.如果一切工作顺利的话,你可以删除老的函数库的备份。http:/ 我能否把在 486 上编译的代码或编译器拿到 386 上用?当然,除非你编译的是内核。GCC 用来在 486 上编译的选项-m486 只是优化了所编译程序,使其运行快一些。这些编译 的程序仍能很好的在 386

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号