由于进程在启动时,只需使用很多动态库中的一个,为了节约运行内存,使用显式方式加载动态库。
动态库显式调用和隐式调用这里就不在详细说了。下面是显式加载调用动态库的过程。
代码部分分为: test_so1.cpp , test_so1.h,test_dl.cpp, test_so2.cpp,test_so1.h
其中test_so1.cpp为动态库1源代码, test_so1.h为动态库1的头文件;test_so2.cpp为动态库2源代码, test_so2.h为动态库2的头文件;test_dl.cpp为测试代码。
以下依次为各文件源码:
/// test_so1.cpp
#include "test_so1.h"
#include <iostream>
using namespace std;
int test(void)
{
cout << "Test so 11111!" << endl;
return 0;
}
/// test_so1.h
extern "C" {
int test(void);
}
/// test_so2.cpp
#include "test_so2.h"
#include <iostream>
using namespace std;
int test(void)
{
cout << "Test so 22222!" << endl;
return 0;
}
/// test_so2.h
ex