当前位置: 技术问答>linux和unix
如何在so库中封装c++类
来源: 互联网 发布时间:2016-06-25
本文导语: 如何在so库中封装c++类。就像mfc中的dll一样,可以把一个c++类的实现放在dll中。然后再exe程序中引用该类,甚至继承该类。 | 举个例子吧! 先做好你的C++类,包括所有的cpp 和 h file。 用Makefi...
如何在so库中封装c++类。就像mfc中的dll一样,可以把一个c++类的实现放在dll中。然后再exe程序中引用该类,甚至继承该类。
|
举个例子吧!
先做好你的C++类,包括所有的cpp 和 h file。
用Makefile或者shell编译你的项目。其中要包含最关键的语句就是
g++ -shared 你的Cppfile
这样生成so文件。如libtest.so
然后做一个测试文件,用如果是c用gcc编译,c++用g++编译。
g++ -ltest your test cpp -o test
先做好你的C++类,包括所有的cpp 和 h file。
用Makefile或者shell编译你的项目。其中要包含最关键的语句就是
g++ -shared 你的Cppfile
这样生成so文件。如libtest.so
然后做一个测试文件,用如果是c用gcc编译,c++用g++编译。
g++ -ltest your test cpp -o test
|
以前回答过类似的帖子:
如果你有两个类,放在这几个文件中:
test.h test.cpp test1.h test2.cpp
在用g++编译时,先编译成.o文件,在编译成静态库:
g++ test.cpp -c -o test.o
g++ test1.cpp -c -o test1.o
g++ -shared -Wl -soname -o libtest.so.1.0.0 test.o test1.o
你的类就在libtest.so.1.0.0里面
http://topic.csdn.net/u/20090716/16/6a9a7ec8-d2af-44d3-9ace-f5e816e9c9df.html
如果你有两个类,放在这几个文件中:
test.h test.cpp test1.h test2.cpp
在用g++编译时,先编译成.o文件,在编译成静态库:
g++ test.cpp -c -o test.o
g++ test1.cpp -c -o test1.o
g++ -shared -Wl -soname -o libtest.so.1.0.0 test.o test1.o
你的类就在libtest.so.1.0.0里面
http://topic.csdn.net/u/20090716/16/6a9a7ec8-d2af-44d3-9ace-f5e816e9c9df.html
|
编译的时候加上-share