GCC编译生成动态链接库

本文给出了在FreeBSD下用GCC编译生成动态链接库(共享库)的全部流程。

1.建立工作目录dynamic_lib.

localhost$mkdir dymamic_lib

2.准备源文件libtest.c,libtest.h,main.c

libtest.c


#include
void hello()
{
       printf("This Library is called /n");
}

libtest.h


extern void hello();

main.c


#include
#include "libtest.h"
int main(int argc,char **argv)
{
       hello();
       return 0;
}

3.编译生成共享库

执行显示目录内容命令显示为:

localhost$ ls -1
libtest.c
libtest.h
main.c

localhost$gcc -shared -fpic -o libtest.so libtest.c

localhost$ ls -1
libtest.c
libtest.h
libtest.so*
main.c

4.生成执行文件
localhost$gcc -o main -ltest -L. main.c

localhost$ ls -1
libtest.c
libtest.h
libtest.so*
main*
main.c

5.执行文件

localhost$setenv LD_LIBRARY_PATH .

localhost$ ldd main
main:
        libtest.so => ./libtest.so (0x28068000)
        libc.so.4 => /usr/lib/libc.so.4 (0x2806a000)
localhost$./main

This Library is called

 

 

你可能感兴趣的:(GCC编译生成动态链接库)