当前位置:  技术问答>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;
}

|
首先用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内核感兴趣的。

|
PCLIB= -L$(ORACLE_HOME)/lib/ -L$(ORACLE_HOME)/precomp/lib -L$(TUXDIR)/lib -lclntsh 
`cat $(ORACLE_HOME)/lib/sysliblist` 
参考 playmud(猪头流氓---最近手头比较紧)  的这个

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • hp_unix可以装在IBM服务器上吗。为什么?
  • HTML教程 iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3