如何在linux环境下配置pro*c程序预编译参数

如何在linux环境下配置pro*c程序预编译参数,第1张

如何在linux环境下配置pro*c程序预编译参数

*** 作系统:

红帽子Linux 2.4.21-4.EL

数据库:oracle10g

配置步骤:

1,在$HOME下建立一个etc目录,在此目录下简历一个配置文件Make.defines文件,编辑该文件,写入以下内容:

include $(ORACLE_HOME)/precomp/lib/env_precomp.mk

PROC=proc

GCC=gcc

BINDIR=$(HOME)/bin

#oracle的include目录

ORAIFLAG=-I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/plsql/public

#oracle的库文件路径

ORALFLAG=-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/precomp/lib -L$(ORACLE_HOME)/rdbms/lib -L$(ORACLE_HOME)/sqlplus/lib -L$(ORACLE_HOME)/network/lib -L$(ORACLE_HOME)/plsql/lib

IFLAG=-I$(HOME)/include $(ORAIFLAG)

LFLAG=-L$(HOME)/lib $(ORALFLAG) -lclntsh

PROCFLAGS=char_map=string

.SUFFIXES: .pc .c .o

.pc.c:

$(PROC) $(PROCFLAGS) iname=$*

rm *.lis

.pc.o:

$(PROC) $(PROCFLAGS) iname=$*

rm *.lis

$(GCC) $(IFLAG) -c $*.c

.c.o:

$(GCC) $(IFLAG) -c $*.c

2,确保.bash_profile文件中有如下环境变量配置:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

3,在自己的makefile文件中第一行写入如下语句:

include $(HOME)/etc/Make.defines

其他的makefile书写方式不变。

例子:

我有一个源程序test.pc,我的makefile文件内容如下:

include $(HOME)/etc/Make.defines

all:test

test:test.o

$(GCC) $? -o $@ $(LFLAG)

rm ./tp* ./*.c ./*.o

编译时执行:make test

产生test可执行程序。

作者注:以上配置方法跟作者的的程序组织习惯有关(一般将通用的编译参数放在一个文件中,具体的makefile文件再将这个定义包含进去)。总之在makefile文件内将以上提到的语句均写入即可。

编译:gcc -o xxx xxx.c 调试:gcc -o xxx -g xxx.c gdb xxx run break line(行数)或函数名 info 查看断点 n 下一步 print +变量 打印变量值 q 退出调试 c 继续执行到下一个断点

1)至于遇到什么问题,无法估量。不过你c语言的文件是.C后缀,c++的是.cpp后缀。你可以用动态库或者静态库的形式来实现彼此间的调用,也就是把你要用到的C++函数编译成一个库,把要用到的C函数编译成一个库,然后再去调用生成的库文件,已达到使...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6099165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存