首先说明下代码结构:一共三个源码,两个动态库so的源码:lib1.c和lib2.c,各导出一个库函数(gcc编译时默认导出,不像windows的msvc要明确指定导出dllexport),一个主执行程序源码:main.c,调用两个动态库的导出函数,如下:
lib1.c
1 2 3 4 5 6 | #include <stdio.h> void lib1_func( const char * from) { printf ( "lib1 func from %s\n" , from); } |
lib2.c
1 2 3 4 5 6 | #include <stdio.h> void lib2_func( const char * from) { printf ( "lib2 func from %s\n" , from); } |
main.c
1 2 3 4 5 6 7 8 9 10 11 12 | #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; } |