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

linux中的动静链接库

生成静态库:
  假如有文件  main.c、1.c、2.c    将1.c和2.c生成一个静态库的方法为,编写Makefile:
   mylib.a:1.c 2.c
       $(CC) -c $<    # $<表示所有最新的依赖项,若没有旧的则是全部依赖项
       ar crv  libmy.a 1.o 2.o   # 1.o 2.o为1.c和2.c生成的object文件
静态库的链接:
  gcc -o myapp  main.o  -L./  -lmy     #  myapp为要生成的应用程序 
   -L  后跟的是自定义的库所在的位置,如果是系统库则不需要  -lmy中my是库文件名的后半部,也即库名,库文件名的命名规则为libNAME.a ,NAME为库名  如果链接多个库则用多个"-lNAME"参数。
动态库的生成:
  gcc -shared -o libNAME.so  1.c 2.c  #gcc会直接把1.c 2.c编译成object文件并合成名为
libNAME.so的动态库。
  动态库的使用跟静态库一样,区别是静态库将代码加到了应用程序中,以后不再需要静态库,而动态库只是一个链接,应用程序每次运行都需要加载动态库。注意,在应用程序运行时没出现找不到库的问题,因为链接时是在系统库目录中(/usr/lib  /usr/local/lib)查找库。所以需将自定义的动态库复制到系统库目录中,或使链接时能找到这个库。


相关文档:

Linux线程pthread笔记


在阅读Nginx的代码.先碰到的是线程部分的
因为从main开始最早是做线程部分的工作
实习一下pthread方面的内容
#include "pthread.h"
#include "stdio.h"
void* thread_test(void* ptr)
{
        while(1)
        printf("i am child pthread\n");
}
int ma ......

linux 32位与64位系统下数据类型长度的区别

近日在centos下用c写东西,这个程序的服务端运行在64位的centos下,客户端有可能是32机,也有可能是64位的。
为了保证数据传输的一致性制定了一套协议,用struct实现。为了保证输出过程中,数据的完整性,特别针对系统的不同对struct里变量的类型进行了优化。为了保证内存对齐方式的一致和数据存储空间的紧凑,都用 #pragm ......

Linux常用头文件

Linux常用的头文件集合:
<dirent.h>        目录项
<fcntl.h>         文件控制
<fnmatch.h>    文件名匹配类型
<glob.h>    路径名模式匹配类型
<grp.h>    ......

在Linux下通过PPP上WCDMA

折腾了一番通过几种USB上网卡在Linux下上WCDMA,在此记录一下:
通用配置文件:
/etc/ppp/peers/wcdma :
/dev/ttyACM0
460800
connect '/etc/ppp/chat-wcdma'
noauth
usepeerdns
noipdefault
defaultroute
----
注意,其中的/dev/ttyACM0 是串口设备,后面描述。
/etc/ppp/chat-wcdma
#!/bin/sh
#
# This is ......

linux 下查看一个进程运行路径的方法

在linux下查看进程大家都会想到用 ps -ef|grep XXX
可是看到的不是全路径,怎么看全路径呢?
每个进程启动之后在 /proc下面有一个于pid对应的路径
例如:ps -ef|grep python
显示:oracle    4431  4366  0 18:56 pts/2    00:00:00 python Server.py
4431就是进程号
到/pro ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号