平台:HP-UX server1 b.11.23 u ia64 3966008937
oracle 9i
代码:
#include <iostream>
#include <string.h>
#include <string>
#include <occi.h>
int main ()
{
oracle::occi::Environment * m_env ;
oracle::occi::Connection * m_conn ;
m_env = oracle::occi::Environment::createEnvironment(oracle::occi::Environment::THREADED_MUTEXED); //THREADED_MUTEXED THREADED_UNMUTEXED DEFAULT都不管用
m_conn = m_env->createConnection("zhkz", "zhkz", "gk0");
m_env->terminateConnection(m_conn);
oracle::occi::Environment::terminateEnvironment(m_env);
std::string sTable = "test";
std::string sSQL = "testtesttesttesttesttesttest" + sTable + "testtest";
}
Makefile:
ORACLE_INCLUDES=-I$(ORACLE_HOME)/rdbms/demo \
-I$(ORACLE_HOME)/rdbms/public \
-I$(ORACLE_HOME)/plsql/public \
-I$(ORACLE_HOME)/network/public \
-I$(ORACLE_HOME)/precomp/public
ORACLE_LIBS=-L$(ORACLE_HOME)/lib
INC=$(ORACLE_INCLUDES)
LIB=$(ORACLE_LIBS) -lclntsh -locci -lpthread
CC_FLAGS=+DD64 -g -w -c
LD_FLAGS=+DD64 -g -w -o
ACC=aCC
PRG=test
SRCS=test.cpp
OBJS=$(SRCS:.cpp=.o)
$(PRG):.depend $(OBJS)
$(ACC) $(INC) $(LIB) $(LD_FLAGS) $@ $(OBJS)
.cpp.o:
$(ACC) $(INC) $(CC_FLAGS) $<;
.depend:$(SRCS)
$(ACC) $(INC) $(CC_FLAGS) +make -E $(SRCS) > $@
-include .depend
.PHONY:clean
clean:
rm -f .depend $(OBJS) $(PRG)
现象:
编译链接时如果加入 -lpthread 会导致程序异常退出(string的析构发生错误),如果不加 -lpthread则没有问题
写的程序老异常退出,经过精简后发现只有这简单的几句就会复现问题,刚接触occi,再用户手册上也没看到有特殊要求的,有熟悉occi的帮帮忙啊
------解决方案--------------------
这是啥语言?C?
建议到相关语言板块提问,这个问题本身和数据库关系不大,只是不同语言实现方式不同