Я все еще пытаюсь получить упаковку Ocilib для oci и occi, настроенную на затмение. Я знаю, что проблема с компоновщиком, но я просто не понимаю, что я делаю неправильно. Я не получаю ошибок во время компиляции, но я получаю 38 ошибок, когда пытаюсь связать, все они связаны с неопределенными ссылками.
в eclipse я устанавливаю путь к библиотеке с помощью Свойства -> Пути и символы -> пути к библиотекам, и я устанавливаю библиотеки в -> библиотеках. Я редактирую имена библиотек, чтобы удалить путь, и советую расширение .lib и предыдущие посты. Я также попытался изменить порядок компоновки, перемещая библиотеки вверх или вниз. Я также пытался связать из командной строки (как и ожидалось) те же результаты.
Это код:
#include <string.h>
#include "ocilib.h"
#include "ocilib.hpp"
#include "oci.h"
#include "occi.h"
using namespace ocilib;
int main() {
std::string db = "myhostname@abc.com;
std::string user = "fred";
std::string pwd = "flintstone";
try{
Environment::Initialize();
Connection con(db, usr, pwd);
}
catch (std::exception &ex){
std::cout << ex.what() << std::endl;
}
Environment::Cleanup();
}
код компилируется нормально, и в расширенной отладке подmain.o перечислены все ожидаемые sysbols, функции и т. д. Там нет ничего удивительного. Но компоновщик генерирует 38 ошибок. Вот только пример вместе с командами компилятора и компоновщика
g++ "-IC:\\OCILIB\\include" "-IC:\\app\\pe972c\\product\\11.2.0\\client_3\\oci\\include" -O0 -g3 -Wall -c -fmessage-length=0 -o main.o "..\\main.cpp"
g++ "-LC:\\OCILIB\\lib32" "-LC:\\app\\pe972c\\product\\11.2.0\\client_3\\oci\\lib" "-LC:\\app\\pe972c\\product\\11.2.0\\client_3\\oci\\lib\\msvc" -o ConnDB.exe main.o -lociliba -locilibw -loci -loraocci11
main.o: In function `Check<unsigned int>':
C:/OCILIB/include/ocilib_impl.hpp:135: undefined reference to `OCI_GetLastError'
main.o: In function `Check<long long unsigned int>':
C:/OCILIB/include/ocilib_impl.hpp:135: undefined reference to `OCI_GetLastError'
main.o: In function `Check<bool>':
C:/OCILIB/include/ocilib_impl.hpp:135: undefined reference to `OCI_GetLastError'
main.o: In function `Check<char const*>':
C:/OCILIB/include/ocilib_impl.hpp:135: undefined reference to `OCI_GetLastError'
main.o: In function `Check<int>':
C:/OCILIB/include/ocilib_impl.hpp:135: undefined reference to `OCI_GetLastError'
main.o:C:/OCILIB/include/ocilib_impl.hpp:135: more undefined references to `OCI_GetLastError' follow
main.o: In function `ZN6ocilib9ExceptionC1EP9OCI_Error':
C:/OCILIB/include/ocilib_impl.hpp:956: undefined reference to `OCI_ErrorGetStatement'
C:/OCILIB/include/ocilib_impl.hpp:957: undefined reference to `OCI_ErrorGetConnection'
C:/OCILIB/include/ocilib_impl.hpp:958: undefined reference to `OCI_ErrorGetRow'
C:/OCILIB/include/ocilib_impl.hpp:959: undefined reference to `OCI_ErrorGetType'
C:/OCILIB/include/ocilib_impl.hpp:960: undefined reference to `OCI_ErrorGetInternalCode'
C:/OCILIB/include/ocilib_impl.hpp:961: undefined reference to `OCI_ErrorGetOCICode'
C:/OCILIB/include/ocilib_impl.hpp:963: undefined reference to `OCI_ErrorGetString'
main.o: In function `ZN6ocilib11Environment7CleanupEv':
C:/OCILIB/include/ocilib_impl.hpp:1036: undefined reference to `OCI_GetUserData'
C:/OCILIB/include/ocilib_impl.hpp:1037: undefined reference to `OCI_SetUserData'
main.o: In function `ZN6ocilib11Environment10GetCharsetEv':
C:/OCILIB/include/ocilib_impl.hpp:1052: undefined reference to `OCI_GetCharset'
main.o: In function `ZN6ocilib11Environment9GetFormatB5cxx11ENS_4EnumINS_16FormatTypeValuesEEE':
C:/OCILIB/include/ocilib_impl.hpp:1122: undefined reference to `OCI_GetFormat'
Я перепробовал все, что мог придумать. Я проверил и дважды проверил, что библиотеки там, где я сказал, что они есть. Я переместил порядок, в котором они были связаны, я даже попытался добавить библиотеки и пути, и все же я получаю те же результаты в общей сложности 38 ошибок. Я не знаю, является ли это случаем несовпадающих версий, но это затмение является версией C ++ для Windows 10, я думаю, 6 из 2019. ORILIB также является последней версией. Я даже пытался перезагрузить клиента мгновенного оракула с файлами разработчика. Мне бы очень хотелось узнать кое-что, если кто-нибудь подскажет, как они настроили свое затмение, чтобы связать это, я был бы очень признателен. И, наконец, последняя цепочка информации - MinGW GCC с использованием встроенного построителя DCT