您的位置:首页 > 运维架构 > Linux

so-a--linux---静态--动态--链接库

2011-10-13 15:35 483 查看
//main.c
#include "zxc.h"

int main()
{
printfbnq();
return 0;
}
//zxc.h

void printfbnq();

//zxc.c
#include <stdio.h>

void printfbnq()
{
long str[56]={0,1};
int i;
for(i=2;i<56;i++)
{
str[i]=str[i-1]+str[i-2];
if(33==i||44==i||55==i)
{
printf("%ld\n",str[i]);
}
}
}

//begin static lib

ubuntu@ubuntu:~/gcclearn/gcctest/a$ gcc -c zxc.c
ubuntu@ubuntu:~/gcclearn/gcctest/a$ ls
main.c  zxc.c  zxc.h  zxc.o
ubuntu@ubuntu:~/gcclearn/gcctest/a$ ar -rc libzxc.a zxc.o
ubuntu@ubuntu:~/gcclearn/gcctest/a$ ls
libzxc.a  main.c  zxc.c  zxc.h  zxc.o
ubuntu@ubuntu:~/gcclearn/gcctest/a$ gcc -o main.o -c main.c
ubuntu@ubuntu:~/gcclearn/gcctest/a$ ls
libzxc.a  main.c  main.o  zxc.c  zxc.h  zxc.o

ubuntu@ubuntu:~/gcclearn/gcctest/a$ gcc -o  main.exe -L./ main.o -lzxc
ubuntu@ubuntu:~/gcclearn/gcctest/a$ ls
libzxc.a  main.c  main.exe  main.o  zxc.c  zxc.h  zxc.o
ubuntu@ubuntu:~/gcclearn/gcctest/a$ ./main.exe
3524578
701408733
2144908973

//end static lib

//begin not static lib

ubuntu@ubuntu:~/gcclearn/gcctest/a$ cp main.c zxc.c zxc.h ../so/
ubuntu@ubuntu:~/gcclearn/gcctest/a$ cd ../so
ubuntu@ubuntu:~/gcclearn/gcctest/so$ ls
main.c  zxc.c  zxc.h
ubuntu@ubuntu:~/gcclearn/gcctest/so$ gcc -fpic -shared -o libzxc.so zxc.c
ubuntu@ubuntu:~/gcclearn/gcctest/so$ ls
libzxc.so  main.c  zxc.c  zxc.h
ubuntu@ubuntu:~/gcclearn/gcctest/so$ gcc -o main.exe -L./ main.c lzxc
gcc: lzxc: No such file or directory
ubuntu@ubuntu:~/gcclearn/gcctest/so$ sudo cp libzxc.so /lib/
[sudo] password for ubuntu:
ubuntu@ubuntu:~/gcclearn/gcctest/so$ sudo ldconfig
ubuntu@ubuntu:~/gcclearn/gcctest/so$ gcc -o main.exe -L./ main.c lzxc
gcc: lzxc: No such file or directory
ubuntu@ubuntu:~/gcclearn/gcctest/so$ gcc -o main.exe -L./ main.c -lzxc
ubuntu@ubuntu:~/gcclearn/gcctest/so$ ls
libzxc.so  main.c  main.exe  zxc.c  zxc.h
ubuntu@ubuntu:~/gcclearn/gcctest/so$ ./main.exe
3524578
701408733
2144908973

//end not static lib

//cp to my D:

ubuntu@ubuntu:~$ cd gcclearn/
ubuntu@ubuntu:~/gcclearn$ ls
gcc_01.c  multifiles  gcctest
ubuntu@ubuntu:~/gcclearn$
ubuntu@ubuntu:~/gcclearn$ cp gcctest/a/libzxc.a gcctest/a/zxc.h gcctest/so/libzxc.so  /mnt/hgfs/gcctest/
ubuntu@ubuntu:~/gcclearn$ cd gcctest/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu gcc file