Соединение программы c ++ с Oracle с использованием библиотеки occi - PullRequest
1 голос
/ 01 апреля 2019

Я пытаюсь подключить свою программу на C ++ к базе данных Oracle (12.1).

В настоящий момент моя программа на C ++ (я использую компилятор mingw64 g ++ в Windows):

#include <occi.h> 

void oracle_connect()
{
    using namespace oracle::occi;       
    using namespace std;
    Environment *env;              
    Connection *conn;              
    Statement *stmt;               
    env = Environment::createEnvironment (Environment::DEFAULT);
    conn = env->createConnection ("dasdas", "dasdas", "dasdas");
}

int main()
{
    oracle_connect();
}

Я компилирую свою программу с помощью этой команды:

g++ test.cpp -loci -lociw32 -loraocci12

Все эти библиотеки (oraocci12.lib ociw32.lib oci.lib) находятся в моей папке oracle: oracle \ product \ 12.1.0 \ client_1 \ oci\ lib \ msvc

Но во время компиляции возникла ошибка:

undefined reference to `oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned int), void* (*)(void*, void*, unsigned int), void (*)(void*, void*))'

Как правильно связать программу для успешной компиляции?

1 Ответ

1 голос
/ 01 апреля 2019

В проекте у меня работает конфиг следующий

#----- Environnement specifique Oracle -----
ORACLEINC    = $(ORACLE_HOME_DEV)/include
ORACLELIB    = $(ORACLE_HOME_DEV)/lib32
ORACLEBIN    = $(ORACLE_HOME_DEV)/bin
ORAINC = -I$(ORACLEINC) -I$(ORACLE_HOME_DEV)/rdbms/demo -I$(ORACLE_HOME_DEV)/precomp/public -I$(ORACLE_HOME_DEV)/plsql/public -I$(ORACLE_HOME_DEV)/network/public
ORALIB = -L$(ORACLELIB) -L$(ORACLE_HOME_DEV)/rdbms/lib -L$(ORACLE_HOME_DEV)/precomp/lib -L$(ORACLE_HOME_DEV)/plsql/lib -L$(ORACLE_HOME_DEV)/network/lib

где ORACLE_HOME_DEV --> /exec/products/oracle/v10.2/

Библиотека, которую вы ищете, должна быть здесь

libocci.a.10.1 -> /exec/products/oracle/v10.2/lib32/libocci.a

...