linux下将程序中用到的第三方库编译到自己的程序中我在linu
我在linux下写了个C语言的程序,但是其中用了一些第三方的函数库。也就是说我的程序只有在安装了这些库的linux系统中才能运行。我现在的想法是在我编译自己的程序的时候就把这些第三防库编译到我的程序中,这样我就可以在没有安装这些库的linux上运行了。但是我不知道具体怎么做,我该看哪些资料呢?请给个思路,或者给个关键词也好。谢谢。
看这个第三方库是否提供了什么样的包支持: 举例,头文件名 abc.h 函数名为 abc_test(); 第三方库头文件目录为/abc/include/ 链接库目录为/abc/lib/ 1、头文件和源文件:这是最好的情况,引用头文件和相关函数即可。 如: #include "abc.h" abc_test();//直接调用即可 编译时,Makefile中加入编译选项 -I/abc/include 为了能将库的头文件引进来。 而且你的程序运行时,不再需要这个第三方库。 2、静态链接库:引用头文件和相关函数,设提供的静态库名为 libabc.lib 编译时,Makefile中加入 编译选项 1)-I/abc/include #编译时加,为了能将库的头文件引进来; 2)-L/abc/lib -labc #链接时加的 而且你的程序运行时,不再需要这个第三方库。 3、动态链接库,设动态链接库为libabc.so 调用动态链接库文件,需要dlopen等函数 编译时,Makefile中加入 编译选项 1)-I/abc/include #编译时加,为了能将库的头文件引进来; 2)-L/abc/lib -labc #链接时加的 注意:你的程序运行时,需要这个第三方库的libabc.so文件。