易截截图软件、单文件、免安装、纯绿色、仅160KB

LINUX 静态库和动态库


       库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a
1,生成库
      第一步要把源代码编绎成目标代码。以下面的代码为例,生成上面用到的hello库:
        /* hello.c */
      
#include
      
void sayhello()
     
{
            
printf("hello,world\n");
      }
    
用gcc编绎该文件,在编绎时可以使用任何全法的编绎参数,例如-g加入调试代码等:
             gcc -c hello.c -o hello.o
1).连接成静态库
         现在我们创建libhello静态库文件:
         $ gcc -c libhello -o libhello.o
         $ ar rcs libhello.a libhello.o  
         其中ar中的rcs的意思是: r表明将模块
加入到静态库中,c表示创建静态库,s表示生产索引。
2).连接成动态库
        
gcc    -fpic/fPIC -c source.c -o source.o
            gcc -shared -Wl,-soname,your_soname -o library_name file_list library_list
           说明: 
               -fpic或者-fPIC表明创建position independent code,这通常是创建共享库必须的。
               -Wl 表明给链接器传送参数,所以这里-soname, library_name 为给链接器的参数。
               -shared 表明是使用共享库
          下面是使用a.c和b.c创建共享库的示例:
           gcc -fPIC -g -c -Wall a


相关文档:

Linux busybox小问题的解决

编译并安装Busybox 1.15.3到L inux2.6.11.1,启动系统
进入shell 提示:  ./ash : can't access tty; job control turned off.
分析发现
 /etc/inittab文件中有一行:
     ::askfirst:/bin/ash
   这在busybox 1.2.1运行正常
修改为
  tty1::askfirst:/bin/ash
后正常. ......

在linux下,如何在C语言中使用正则表达式(整理)


  一个正则表达式的教程可以参看(里面有个测试正则表达式的工具)
     http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm#ad
 
     正则表达是用来匹配字符串的好东东。
   
     如果用户熟悉Lin ......

linux C使用管道通信(一)

 Linux中的进程通信
1.管道
   函数原型:int pipe(int filedes[2]);
   函数返回值: 正确返回0;错误返回-1
   其中的文件描述符filedes[0]是用来读取数据的,filedes[1]是用来写数据的。
例子1:
#include<stdio.h>
#include<stdlib.h>
#include<u ......

Linux网络接口的源码结构

一.前言
  Linux的源码里,网络接口的实现部份是非常值得一读的,通过读源码,不仅对网络协议会有更深的了解,也有助于在网络编程的时候,对应用函数有更精确的了解和把握。
  本文把重点放在网络接口程序的总体结构上,希望能作为读源码时一些指导性的文字。
  本文以Linux2.4.16内核作为讲解的对象,内核源码 ......

linux 的库操作命令 ar和nm


linux 的库操作命令 ar和nm
当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。  
 
1.ar基本用法
2.nm基本用法命令
 
 当我们的程序中有经常 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号