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

Linux下动态库的生成及链接方法(1)

               Linux下动态库的生成及链接方法 (1)
      Linux 下动态库文件的扩展名为".so"(Shared Object)。按照约定,所有动态库文件名的形式是libname.so(可能在名字中加入版本号)。这样,线程函数库被称作 libthread.so。静态库的文件名形式是libname.a。共享archive的文件名形式是libname.sa。共享archive只是一种过渡形式,帮助人们从静态库转变到动态库。 本文仅以简单的例子介绍动态库文件的生成和链接方法。操作系统:VM_Red Hat Linux; GCC版本:3.2.2-5.
一、库文件及测试文件代码 库文件及测试文件所在的目录:/home/myself/libtest/。
  1.库文件名:mylib.c
  /*lib test */
  #include <stdio.h>
  int my_lib_test (void)
  {
    printf ("\n==lib test!\n");
    return 0;
  }
 2.测试文件名:test.c
 #include <stdio.h>
 int main(void)
 {
   my_lib_test();
   return 0;
 }
二、动态库的编译方法
 编译库文件mylib.c:
 $gcc -shared -o mylib.so mylib.c
如果编译成功,会在当前目录下生成动态库文件:mylib.so。
其中,编译生成动态库的命令为:gcc (-fpic) -shared -o mylib.so mylib.c -fpic 使输出的对象模块是按照可重定位地址方式生成的。 -shared指定把对应的源文件生成对应的动态链接库文件。
三、动态库的测试方法
 编译测试文件test.c:
 $ gcc -o test test.c ./mylib.so
成功编译后,生成test文件,运行test: $ ./test
  ==lib test!
其中,gcc -o test test.c ./mylib.so的最后一个参数指定所链接库文件的相对路径。(相对路径和绝对路径应该知道吧?)
Linux下动态库的生成及链接方法 (2)


相关文档:

Linux kernel development Chapter1

 1 linux内核
并不区分线程和进程。对于内核来说,所有的线程和进程都一样,只是其中的一些共享资源而已。
 2 内核开发特点:
    2.1 linux内核开发不能使用c函数库,因为c库需要操作系统的支持,而且c库的大小和效率也是内核开发所不能容忍的;
        ......

linux 命令

【目录】
一、shell命令
1、内建命令
2、外部命令
3、实用程序
4、用户程序
5、shell脚本
二、命令帮助文档
1、命令自身的帮助功能
2、man手册
3、在线帮助文档
三、分类介绍
(一)文件、目录操作命令
(二)查看文件内容命令
(三)基本系统命令
(四)监视系统状态命令
(五)磁盘操作命令
(六)用户 ......

Linux下用C语言API连接MySQL数据库

 像PHP和perl一样,MySQL也提供的C语言使用的API. C代码的API是随MySQL一起发布的。 它包含在mysqlclient库中, 可以使C程序来访问数据库。
    MySQL源码包中的许多客户端都是用C写的。 如果你正在找使用这些C API的例子, 可以看看客户端的写法。你可以在MySQL源码包的clients目录找到这些例子。
& ......

Linux中tty、pty、pts的概念区别

 Linux中tty、pty、pts的概念区别
基本概念:
1> tty(终端设备的统称):
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。
终端是一种字符型设备,它有多种类型,通常使用tty来简 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号