当前位置: 技术问答>linux和unix
急求:HP_UNIX下的Pro*c/c++的编译问题
来源: 互联网 发布时间:2015-09-11
本文导语: 给下代码,应该如何编译呢?相关资料或编译文件的样本都好 #include #include #include #include #include #include EXEC SQL INCLUDE SQLCA.H; class CTest { public: CTest(); ~CTest(); }; CTest::CTest() { char * UserName1 = "user"; char * Pw...
给下代码,应该如何编译呢?相关资料或编译文件的样本都好
#include
#include
#include
#include
#include
#include
EXEC SQL INCLUDE SQLCA.H;
class CTest
{
public:
CTest();
~CTest();
};
CTest::CTest()
{
char * UserName1 = "user";
char * Pwd1 = "pwd";
char * DbName1 = "db";
EXEC SQL DECLARE DB_NAME1 DATABASE;
EXEC SQL WHENEVER SQLERROR GOTO errexit;
EXEC SQL CONNECT :UserName1 IDENTIFIED BY :Pwd1 AT DB_NAME1 USING :DbName1;
EXEC SQL AT DB_NAME1 COMMIT WORK RELEASE;
return;
errexit:
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL AT DB_NAME1 ROLLBACK WORK RELEASE;
return;
}
#include
#include
#include
#include
#include
#include
EXEC SQL INCLUDE SQLCA.H;
class CTest
{
public:
CTest();
~CTest();
};
CTest::CTest()
{
char * UserName1 = "user";
char * Pwd1 = "pwd";
char * DbName1 = "db";
EXEC SQL DECLARE DB_NAME1 DATABASE;
EXEC SQL WHENEVER SQLERROR GOTO errexit;
EXEC SQL CONNECT :UserName1 IDENTIFIED BY :Pwd1 AT DB_NAME1 USING :DbName1;
EXEC SQL AT DB_NAME1 COMMIT WORK RELEASE;
return;
errexit:
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL AT DB_NAME1 ROLLBACK WORK RELEASE;
return;
}
|
首先用pro c++生成.cpp文件,这时候要注意库函数里面可能是c函数,需要加上extern "C"这种声明,
然后用c++编译器编译成可执行程序。不过还真没有实际做过c++的,给你一个c的makefile吧。
.SUFFIXES: .pc .c .o .h
PCLIB= -L$(ORACLE_HOME)/lib/ -L$(ORACLE_HOME)/precomp/lib -L$(TUXDIR)/lib -lclntsh
`cat $(ORACLE_HOME)/lib/sysliblist` -lc_r
PROC=proc
CC=oraxlc
CFLAGS= -I. -I$(ORACLE_HOME)/precomp/public
-I$(ORACLE_HOME)/rdbms/public
-I$(ORACLE_HOME)/rdbms/demo
-I$(ORACLE_HOME)/plsql/public
-I$(ORACLE_HOME)/network/public
-I$(TUXDIR)/include
-I/u02/wyt/ronghai/net_sdb/include
-I../include
-DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD
INCLD=include=. include=/usr/include include=$(ORACLE_HOME)/precomp/public
include=$(ORACLE_HOME)/rdbms/public
include=$(ORACLE_HOME)/rdbms/demo
include=$(ORACLE_HOME)/plsql/public
include=$(ORACLE_HOME)/network/public
include=$(TUXDIR)/include
include=../include
LIBS=../lib/libfunction.a ../lib/libcharge.a ../lib/libcomfunc.a ../lib/liberrlog.a
#-------------------------------------------
#将*.pc写在这里
#将别人的.o写在这里
#OOS= -g ../../b_comm/comm.o
PCsrc=/tech-qa-linux/appsrv.pc common.pc SER_M0603.pc SER_M0604.pc SER_M0606.pc SER_M0608.pc SER_M0610.pc SER_M0665.pc SER_M0666.pc SER_M0667.pc SER_M0699.pc_br/index.html> #将tuxedo的service写在这里
SVCS=M0603 M0604 M0606 M0608 M0610 M0665 M0666 M0667 M06_99
#将可执行程序名写在这里
PROG=chargemanage
#-------------------------------------------
OBJS=$(PCSRC:.pc=.o)
Csrc=/tech-qa-linux/$/index.html(PCSRC:.pc=.c)
INCLUDE = ./
.pc.c:
@$(PROC) iname=$*.pc CONFIG=../me.cfg $(INCLD)
.c.o:
@$(CC) -qcpluscmt -O3 -q64 $(OOS) $(CFLAGS) -c $(CSRC)
.pc.o:
@$(PROC) iname=$*.pc CONFIG=../me.cfg $(INCLD)
@$(CC) -qcpluscmt -O3 -q64 $(OOS) $(CFLAGS) -c $(CSRC)
CLEANOBJ=$(PROG) $(CSRC) $(OBJS) *.lis a.sh
#-------------------------------------------
#编译非tuxedo的pc程序使用下面2行
#$(PROG):$(OBJS)
# $(CC) -qcpluscmt -q64 $(OOS) -o $@ $(OBJS) $(PCLIB)
#-------------------------------------------
#编译tuxedo的pc程序使用下面几行
$(PROG):$(OBJS)
@./gen $(OBJS) $(LIBS) ABC $(SVCS)
@./gen $(OBJS) $(LIBS) ABC $(SVCS) >a.sh
@ chmod 770 a.sh
@ ./a.sh
@ rm -rf a.sh core $(CSRC)
#-------------------------------------------
#只生成.o注释掉上面2段都注释
#-------------------------------------------
$(OBJS):$(CSRC)
@$(CC) -qcpluscmt -O3 -q64 $(OOS) $(CFLAGS) -c $(CSRC)
$(CSRC):$(PCSRC) $(INCLUDE)
@$(PROC) iname=$*.pc CONFIG=../me.cfg $(INCLD)
clean:
@rm -rf $(CLEANOBJ)
把给偶的分给偶兄弟大米吧,偶来这里主要想找几个对linux内核感兴趣的。
然后用c++编译器编译成可执行程序。不过还真没有实际做过c++的,给你一个c的makefile吧。
.SUFFIXES: .pc .c .o .h
PCLIB= -L$(ORACLE_HOME)/lib/ -L$(ORACLE_HOME)/precomp/lib -L$(TUXDIR)/lib -lclntsh
`cat $(ORACLE_HOME)/lib/sysliblist` -lc_r
PROC=proc
CC=oraxlc
CFLAGS= -I. -I$(ORACLE_HOME)/precomp/public
-I$(ORACLE_HOME)/rdbms/public
-I$(ORACLE_HOME)/rdbms/demo
-I$(ORACLE_HOME)/plsql/public
-I$(ORACLE_HOME)/network/public
-I$(TUXDIR)/include
-I/u02/wyt/ronghai/net_sdb/include
-I../include
-DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD
INCLD=include=. include=/usr/include include=$(ORACLE_HOME)/precomp/public
include=$(ORACLE_HOME)/rdbms/public
include=$(ORACLE_HOME)/rdbms/demo
include=$(ORACLE_HOME)/plsql/public
include=$(ORACLE_HOME)/network/public
include=$(TUXDIR)/include
include=../include
LIBS=../lib/libfunction.a ../lib/libcharge.a ../lib/libcomfunc.a ../lib/liberrlog.a
#-------------------------------------------
#将*.pc写在这里
#将别人的.o写在这里
#OOS= -g ../../b_comm/comm.o
PCsrc=/tech-qa-linux/appsrv.pc common.pc SER_M0603.pc SER_M0604.pc SER_M0606.pc SER_M0608.pc SER_M0610.pc SER_M0665.pc SER_M0666.pc SER_M0667.pc SER_M0699.pc_br/index.html> #将tuxedo的service写在这里
SVCS=M0603 M0604 M0606 M0608 M0610 M0665 M0666 M0667 M06_99
#将可执行程序名写在这里
PROG=chargemanage
#-------------------------------------------
OBJS=$(PCSRC:.pc=.o)
Csrc=/tech-qa-linux/$/index.html(PCSRC:.pc=.c)
INCLUDE = ./
.pc.c:
@$(PROC) iname=$*.pc CONFIG=../me.cfg $(INCLD)
.c.o:
@$(CC) -qcpluscmt -O3 -q64 $(OOS) $(CFLAGS) -c $(CSRC)
.pc.o:
@$(PROC) iname=$*.pc CONFIG=../me.cfg $(INCLD)
@$(CC) -qcpluscmt -O3 -q64 $(OOS) $(CFLAGS) -c $(CSRC)
CLEANOBJ=$(PROG) $(CSRC) $(OBJS) *.lis a.sh
#-------------------------------------------
#编译非tuxedo的pc程序使用下面2行
#$(PROG):$(OBJS)
# $(CC) -qcpluscmt -q64 $(OOS) -o $@ $(OBJS) $(PCLIB)
#-------------------------------------------
#编译tuxedo的pc程序使用下面几行
$(PROG):$(OBJS)
@./gen $(OBJS) $(LIBS) ABC $(SVCS)
@./gen $(OBJS) $(LIBS) ABC $(SVCS) >a.sh
@ chmod 770 a.sh
@ ./a.sh
@ rm -rf a.sh core $(CSRC)
#-------------------------------------------
#只生成.o注释掉上面2段都注释
#-------------------------------------------
$(OBJS):$(CSRC)
@$(CC) -qcpluscmt -O3 -q64 $(OOS) $(CFLAGS) -c $(CSRC)
$(CSRC):$(PCSRC) $(INCLUDE)
@$(PROC) iname=$*.pc CONFIG=../me.cfg $(INCLD)
clean:
@rm -rf $(CLEANOBJ)
把给偶的分给偶兄弟大米吧,偶来这里主要想找几个对linux内核感兴趣的。
|
PCLIB= -L$(ORACLE_HOME)/lib/ -L$(ORACLE_HOME)/precomp/lib -L$(TUXDIR)/lib -lclntsh
`cat $(ORACLE_HOME)/lib/sysliblist`
参考 playmud(猪头流氓---最近手头比较紧) 的这个
`cat $(ORACLE_HOME)/lib/sysliblist`
参考 playmud(猪头流氓---最近手头比较紧) 的这个
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。