liunx下如何从动态库导出类?

tiantang_85 2010-08-12 11:36:15
同题。从晚上搜到了,如何导出函数,但是导出类没有说明。请各位指教下。谢谢了
...全文
273 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
谭海燕 2010-08-12
  • 打赏
  • 举报
回复
linux下的C没怎么写过导出类的库。

我在MFC中写过导出类的库,大致思路就是导出类的定义,把类的接口留在外面。
wu1373369 2010-08-12
  • 打赏
  • 举报
回复
没明白啥意思,学习了
山椒π 2010-08-12
  • 打赏
  • 举报
回复
一样的,一个简单的C++库为例:

hello.h
#include <iostream>

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 << t->get_num();
}

编译使用库:
g++ -o test main.cpp -ltest

之后测试运行下就可以了

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧