|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
Добрый день. Пытаюсь подключиться из крестов к ораклу (12.1 версия). Использую либу OCCI из ораклиного дистрибутива (oracle\product\12.1.0\client_1\oci\lib\msvc). Работаю из под винды 10 + компилятор mingw64. Есть следующий код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Компилирую строкой: g++ test.cpp -loci -lociw32 -loraocci12 Получаю ошибку: undefined reference to `oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned int), void* (*)(void*, void*, unsigned int), void (*)(void*, void*))' Необходимые библиотеки (oraocci12.lib ociw32.lib oci.lib) компилятор видит. Мне подсказали на stackoverflow, что возможно проблема в том, что библиотеки скомпилированы с отличным ABI, который есть в используемом мною компиляторе и рекомендовали попробовать запуститься из VS. Вопрос - кто-нибудь сталкивался с этой проблемой? Есть какие-нибудь решения, чтобы все это взлетело на mingw64? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 13:31 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
Мой совет: не выпендривайся с OCCI, используй OCI. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 14:04 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, только что накатил visual studio ради интереса. occi нормально завелась и работает - линковка нормально отрабатывает... а с mingw проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 15:16 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
nobodyishereDimitry Sibiryakov, только что накатил visual studio ради интереса. occi нормально завелась и работает - линковка нормально отрабатывает... а с mingw проблема. Возможно, потому что это плюсовые библиотеки. Следовательно, там задействован манглинг имён. У MinGW манглинг имён как у GCC и Clang, у MSVS совсем другой манглинг. В этом плане ты не сможешь скормить плюсовые либы одного тулчейна другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 15:48 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
NekZ, классно сделали. типа вот вам либы, но юзать их можете только под определенный компилятор так что ли получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 15:53 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
nobodyishere, сказали же, ABI у них несовместимы в дефолте VS вообще ThisCall под 32-бита использует, и фиг к нему из других компиляторов достучишься без ассемблерных вставок самое смешное, что они и между версиями студии несовместимы бывают :-). так что ищи и студию из под которой всё это собиралось падает уровень разработчиков, падает ..., надо быть альтернативно одарённым, что бы в либе для общего пользования объекты выставить ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 15:55 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
kealon(Ruslan), см. выше - нашел уже. Вопрос в том, как вообще народ для mingw это запускает. Ладно я для себя балуюсь, а если задача для крупного проекта - что весь проект на VS мигрировать из-за такой лажи?) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 16:00 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
nobodyishere, В C++20, вроде, шли разговоры о portable ABI. Это же дело такое, сам понимаешь, кропотливое и затянутое. Используй сишный OCI и не будет проблем вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 16:06 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
nobodyishereЛадно я для себя балуюсь, а если задача для крупного проекта - что весь проект на VS мигрировать из-за такой лажи?)делаешь на студии dll-ку с нормальными интерфейсами и её уже юзаешь из своего проекта например тупо оборачиваешь Код: plaintext 1. 2. 3. 4.
макрос наверное можно написать, что бы не строчить каждый раз ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 16:08 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
nobodyishereNekZ, классно сделали. типа вот вам либы, но юзать их можете только под определенный компилятор так что ли получается? Так, так. И так всегда и было. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 16:12 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
nobodyishere, я так понимаю что "сишный OCI", о котором пишет NekZ как раз и есть такой вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 16:12 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
kealon(Ruslan)nobodyishereЛадно я для себя балуюсь, а если задача для крупного проекта - что весь проект на VS мигрировать из-за такой лажи?)делаешь на студии dll-ку с нормальными интерфейсами и её уже юзаешь из своего проекта например тупо оборачиваешь Код: plaintext 1. 2. 3. 4.
макрос наверное можно написать, что бы не строчить каждый раз И так от макроса, к метапрограммированию. А потом динамическая диспетчеризация, и парень изобретает ещё один COM ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 16:39 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
всем спасибо) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 17:18 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
Ну да, oci компильнулся нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 17:45 |
|
Соединение c++ программы с Oracle с помощью OCCI библиотеки
|
|||
---|---|---|---|
#18+
NekZИ так от макроса, к метапрограммированию. А потом динамическая диспетчеризация, и парень изобретает ещё один COM кодогенерация рулит, pdb-ки достаточно, что бы заголовков нагенерить ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 19:41 |
|
|
start [/forum/topic.php?fid=57&fpage=14&tid=2017640]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 392ms |
0 / 0 |