问题描述
- linux动态库静态库问题,大牛请进
-
/////// static.h
void static_print();
///////static.cpp
#include
#include "static.h"
void static_print() {
std::cout<<"This is static_print function"<
}
////// shared.h
void shared_print();
////// shared.cpp
#include
#include "shared.h"
#include "static.h"
void shared_print() {
std::cout<<"This is shared_print function";
static_print();
}#include
#include
#include
#include
#include "static.h"using namespace std;
int main()
{
typedef void (*FUN_ADD)(void);
FUN_ADD fun = NULL;
void* plib;
plib = dlopen("./libshared.so", RTLD_NOW | RTLD_GLOBAL);
if( NULL == plib )
cout << "Can't open the libshared.son";
else
cout << "Open the libshared.so!n";fun = (void (*)(void))dlsym(plib, "shared_print"); if( NULL == fun ) cout << "Can't load function 'shared_print'n"; fun(); dlclose(plib); return 0;
}
g++ -c static.cpp
ar -r libstatic.a static.o
g++ shared.cpp -shared -fPIC -o libshared.so
g++ test.cpp -o test libstatic.a -ldl测试每次失败,请大牛指示。。。。
时间: 2024-10-02 20:20:26