当前位置: 技术问答>linux和unix
liunx下如何从动态库导出类?
来源: 互联网 发布时间:2016-09-18
本文导语: 同题。从晚上搜到了,如何导出函数,但是导出类没有说明。请各位指教下。谢谢了 | 一样的,一个简单的C++库为例: hello.h #include class test{ private: int m_num; public: test(int num); ~test(); int...
同题。从晚上搜到了,如何导出函数,但是导出类没有说明。请各位指教下。谢谢了
|
一样的,一个简单的C++库为例:
hello.h
#include
class test{
private:
int m_num;
public:
test(int num);
~test();
int get_num();
void set_num(int num);
};
hello.cpp
#include "hello.h"
test::test(int num)
: m_num (num){
}
test::~test(){}
int test::get_num()
{
return m_num;
}
void test::set_num(int num)
{
m_num = num;
}
生成库:
g++ -g -c -fPIC -o libtest.so hello.cpp
之后为了测试方便可以将libtest.so复制到/usr/lib,头文件复制到/usr/include目录
sudo cp libtest.so /usr/lib
sudo cp hello.h /usr/include
测试程序:
main.cpp
#include "hello.h"
using namespace std;
int main(int argc, char **argv)
{
test *t = new test(5);
cout
hello.h
#include
class test{
private:
int m_num;
public:
test(int num);
~test();
int get_num();
void set_num(int num);
};
hello.cpp
#include "hello.h"
test::test(int num)
: m_num (num){
}
test::~test(){}
int test::get_num()
{
return m_num;
}
void test::set_num(int num)
{
m_num = num;
}
生成库:
g++ -g -c -fPIC -o libtest.so hello.cpp
之后为了测试方便可以将libtest.so复制到/usr/lib,头文件复制到/usr/include目录
sudo cp libtest.so /usr/lib
sudo cp hello.h /usr/include
测试程序:
main.cpp
#include "hello.h"
using namespace std;
int main(int argc, char **argv)
{
test *t = new test(5);
cout