本例代码共有(linux环境):hello.c,out.c,alert.c,swap.c,main.c
我们可以把除main函数之外的用作调用函数的文件编译并制作成动态链接库dll(.so),然后就可以在main中调用了。
实施步骤:
1.编译除main.c之外的c文件。注意只作编译,且需加上-fpic选项。在此只作举例说明,c文件太多的话,得用Makefile了。
cc -c -fpic alet.c
cc -c -fpic hello.c
cc -c -fpic out.c
cc -c -fpic swap.c
2.生成的dll库(.so)。需加上-shared选项。
cc -shared -o mydll.so *.o
3.到此为止,我们就可以在main.c中使用mydll.so中的函数了。在编译main.c文件时强调的一点是要注意dll(.so)的路径,请一定要使用相对路径。而且在执行生成的app二进制文件时,也是要将app和dll库的相对路径设置成编译时所用路径一致才行的,这点在移植dll库和程序的时候得引起注意。
cc -o app main.c ./mydll.so
3.祝大家一切顺心。
我们可以把除main函数之外的用作调用函数的文件编译并制作成动态链接库dll(.so),然后就可以在main中调用了。
实施步骤:
1.编译除main.c之外的c文件。注意只作编译,且需加上-fpic选项。在此只作举例说明,c文件太多的话,得用Makefile了。
cc -c -fpic alet.c
cc -c -fpic hello.c
cc -c -fpic out.c
cc -c -fpic swap.c
2.生成的dll库(.so)。需加上-shared选项。
cc -shared -o mydll.so *.o
3.到此为止,我们就可以在main.c中使用mydll.so中的函数了。在编译main.c文件时强调的一点是要注意dll(.so)的路径,请一定要使用相对路径。而且在执行生成的app二进制文件时,也是要将app和dll库的相对路径设置成编译时所用路径一致才行的,这点在移植dll库和程序的时候得引起注意。
cc -o app main.c ./mydll.so
3.祝大家一切顺心。