首先说明下代码结构:一共三个源码,两个动态库so的源码:lib1.c和lib2.c,各导出一个库函数(gcc编译时默认导出,不像windows的msvc要明确指定导出dllexport),一个主执行程序源码:main.c,调用两个动态库的导出函数,如下:
lib1.c
#include <stdio.h>
void lib1_func(const char* from)
{
printf("lib1 func from %s\n", from);
}
lib2.c
#include <stdio.h>
void lib2_func(const char* from)
{
printf("lib2 func from %s\n", from);
}
main.c
#include <stdio.h>
void lib1_func(const char* from);
void lib2_func(const char* from);
int main()
{
printf("hello from main\n");
lib1_func("main");
lib2_func("main");
return 0;
}