C++ Linux高手进来一下,
我用kdevelop新建了一个基于简单的helloworld的工程,其实我是想跟VC那样创建一个DLL的工程(相当LINUX下的SO),不过这IDE好像没有,我在这里面有10个来类,这些类之间可能存在交叉引用的关系,本身又引用了外部的两个SO文件,把其对应的.h文件包含进来了,我现在想把整个工程编译成一个so的文件(里面调用了另外两个外部SO里面的类)
编译后这个IDE在一个目录下已经生成了很多个.o文件:aggregates.o b2c.o baseobject.o datafactory.o 等等
请问怎么生成.so文件,
g++ -shared -o libmylib.so aggregates.o b2c.o baseobject.o datafactory.o ?
还有如果别人要引用我这个SO,要包含头文件,比如说我对外的所有接口就是datafactory类的一些方法,按理说就包含这个头文件就行了,但我这个头文件本身又包含了其他类的头文件,这样下去,最后发现不是把所有的头文件都 要让外部用户包含了?
本人第一次用linux下的C++编程,
谁能给指点一下思路
还引用了另外两个so 呢,(z.so curl.so),不需要在这条编译命令里写?
[Quote=引用 1 楼 thy38 的回复:]
只要包含主文件里面include的文件就可以了。
---------------------------------
不可能吧,我这个主文件里面包含了一些头文件,这些文件里面又包含了其他的头文件,最终搞得都 包含进来了,搞得这个SO的封装没啥 意义了,本来是想对原先两个SO进行一些封装,让别人直接用我这个SO,
看来用linux的这里还是不多啊
如需要阅读该回复,请登录或注册CSDN!
相关问答:
以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......
#include <stdio.h>
#include <graphics.h>
void main()
{
int x0,y0,x1,y1,driver,mode,i;
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,&qu ......
'\108'作为字符常量对不对?
转义字符'\ddd'表示3位8进制所代表的字符。 但是108不是正确的8进制表示方法,因此应该是错误的。
但是char a='\108'; 为什么编译不出错呢?
\108 没超过 ......
C盘上多的文件名为:dosh , Recycled ,System Volum information, AUTOEXEC.BAT, BOOT.INT , bootfoot.bin, CONFIG.SYS,IO.SYS, MSDOS.SYS, DETECT.COM ,ntldr, pagefile.sys;
而且每个盘上都有这些文件:RECYCLER ......
使用Struts2上传文件,在linux下报错
2009-09-29 14:56:20,801 [org.apache.struts2.interceptor.FileUploadInterceptor]-[ERROR] Processing of multipart/form-data request failed. c:/temp/upload__1dcd07ee_12 ......