存档

  • 关于 so 的一些笔记

    现在的程序越来越复杂,由多个模块构成,如果把所有的模块和依赖都编译到一个单一的可执行文件中,不仅文件体积很大,而且也不利于模块更新;而且有些基础模块可以被多个程序共用,没必要各个程序都打包一份,因此就有了动态链接库。顾名思义,动态链接库就是可以动态地进行链接,在程序需要的时候才会进行加载,并且这份代码在内存里是共享的,在 Windows 中叫“Dynamic Link Library”,后缀是 dll,Linux 上叫“Shared Object”,后缀一般是“so”。

    Hello, world!

    下面是经典的打印“Hello, world!”的例子:

    #ifndef __HELLO_H__
    #define __HELLO_H__
    
    void print(void);
    
    #endif
    
    /* hello.c */
    
    #include <stdio.h>
    
    void print(void)
    {
        printf("Hello, world!\n");
    }
    
    /* main.c */
    
    #include "hello.h"
    
    int main(void)
    {
        print();
    
        return 

    阅读全文…

    2014年5月18日 | 归档: 其它 | 标签:
文章标签 ‘so’