例如:
现有两个文件:test.c、so_test.h;test.c里面定义了一个公共函数str_cpy()
我们将这两个文件编译成一个动态库:libtest.so。
命令:
$ gcc test.c -fPIC -shared -o libtest.so
有个程序源文件 main.c, 想调用str_cpy()函数.
编译时需要将main.c与动态库 libtest.so 链接生成执行文件main:
命令:$ gcc main.c -L. -ltest -o main
so文件不可以直接运行的,so文件是动态函数库文件,函数库文件(包括.a文件和.so文件)只能用来被调用运行,不能直接运行的,so文件就相当于Windows下的dll文件,dll文件就是不能直接运行的。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)