摘要:
概述 ——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完 成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义 阅读全文
posted @ 2013-07-10 22:39
woainilsr
阅读(4971)
评论(0)
推荐(1)
摘要:
在Linux中利用源码包安装软件最重要的就是要仔细阅读安装包当中的README INSTALL两个说明文件,这两个文件会清楚的告诉你如何可以正确的完成这个软件的安装! 我们都知道源码包安装分为这么几个阶段, 1、 Tar:解压这个源码软件包。 2、 Cd:进入到这个源码包。 3、 ./configure:“configure”会在你的系统上测试存在的特性(或者bug!)然后来建立Makef... 阅读全文
posted @ 2013-07-10 22:32
woainilsr
阅读(511)
评论(0)
推荐(0)
摘要:
★概要: 这片文档从程序员的角度讨论了linux的ELF二进制格式。介绍了一些ELF执行 文件在运行控制的技术。展示了如何使用动态连接器和如何动态装载ELF。 我们也演示了如何在LINUX使用GNU C/C++编译器和一些其他工具来创建共享的 C/C++库。 ★1前言 最初,UNIX系统实验室(USL)开发和发布了Executable an... 阅读全文
posted @ 2013-07-10 22:24
woainilsr
阅读(764)
评论(0)
推荐(0)
摘要:
Linux支持动态连接库,不仅节省了磁盘、内存空间,而且可以提高程序运行效率[1]。不过引入动态连接库也可能会带来很多问题,例如动态连接库的调试[4]、升级更新[5]和潜在的安全威胁[6][7]。这里主要讨论符号的动态链接过程,即程序在执行过程中,对其中包含的一些未确定地址的符号进行重定位的过程[3][8]。 本篇主要参考资料[3]和[8],前者侧重实践,后者侧重原理,把两者结合起来就方便理解程序的动态链接过程了。另外,动态连接库的创建、使用以及调用动态连接库的部分参考了资料[1][2]。 下面先来看看几个基本概念,接着就介绍动态连接库的创建、隐式和显示调用,最后介绍符号的动... 阅读全文
posted @ 2013-07-10 22:18
woainilsr
阅读(5579)
评论(0)
推荐(0)
摘要:
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。第1步:编辑得到举例的程序--hello.h、hello.c和main.c;hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello 阅读全文
posted @ 2013-07-10 22:04
woainilsr
阅读(992)
评论(0)
推荐(2)
摘要:
今天要用到静态库和动态库,于是写了几个例子来巩固一下基础。hello1.c ———————————————————— #include void print1(int i) { int j; for(j=0;jvoid print2(char *arr) { char c; int i=0; while((c=arr[i++])!='\0') { printf("%d****%c\n",i,c); } }hello.c ____________________________________________________ void print1(int); 阅读全文
posted @ 2013-07-10 21:47
woainilsr
阅读(31081)
评论(2)
推荐(1)