Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Not able to enable QOCI in Qt Creator



  • I am trying to enable QOCI in Qt Creator using below command.

    qmake -- OCI_PREFIX=/home/santhosh/instantclient_12_1 OCI_LIBS="-Wl,-rpath,/home/santhosh/instantclient_12_1/lib -lclntsh -lnnz12"
    

    But ld returns following errors in config.log.

    loaded result for library config.sqldrivers.libraries.oci
    Trying source 0 (type inline) of library oci ...
      => source failed condition 'config.win32'.
    Trying source 1 (type inline) of library oci ...
    + cd /usr/local/Qt5.12.9/5.12.9/Src/qtbase/src/plugins/sqldrivers/config.tests/oci && /usr/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'QMAKE_USE += oci' 'QMAKE_LIBS_OCI = -L/home/santhosh/instantclient_12_1/lib -lclntsh' 'QMAKE_INCDIR_OCI = /home/santhosh/instantclient_12_1/include' /usr/local/Qt5.12.9/5.12.9/Src/qtbase/src/plugins/sqldrivers/config.tests/oci
    > Info: creating stash file /usr/local/Qt5.12.9/5.12.9/Src/qtbase/src/plugins/sqldrivers/config.tests/.qmake.stash
    + cd /usr/local/Qt5.12.9/5.12.9/Src/qtbase/src/plugins/sqldrivers/config.tests/oci && MAKEFLAGS= make
    > g++ -c -pipe -O2 -w -fPIC  -I. -I/home/santhosh/instantclient_12_1/include -I/usr/lib/qt/mkspecs/linux-g++ -o main.o main.cpp
    > g++ -Wl,-O1 -o oci main.o   -L/home/santhosh/instantclient_12_1/lib -lclntsh   
    > /usr/bin/ld: warning: libmql1.so, needed by /home/santhosh/instantclient_12_1/lib/libclntsh.so, not found (try using -rpath or -rpath-link)
    > /usr/bin/ld: warning: libipc1.so, needed by /home/santhosh/instantclient_12_1/lib/libclntsh.so, not found (try using -rpath or -rpath-link)
    > /usr/bin/ld: warning: libnnz12.so, needed by /home/santhosh/instantclient_12_1/lib/libclntsh.so, not found (try using -rpath or -rpath-link)
    > /usr/bin/ld: warning: libons.so, needed by /home/santhosh/instantclient_12_1/lib/libclntsh.so, not found (try using -rpath or -rpath-link)
    > /usr/bin/ld: warning: libclntshcore.so.12.1, needed by /home/santhosh/instantclient_12_1/lib/libclntsh.so, not found (try using -rpath or -rpath-link)
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `LdiDateCheck'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `OraMemInit'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `lxkRegexpCountLob'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `lxmdigx'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `ztchi'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `sltsmxi'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `ons_shutdown_wtimeout_ctx'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `lxhebc'
    > /usr/bin/ld: /home/santhosh/instantclient_12_1/lib/libclntsh.so: undefined reference to `LhtStrSearch'
    

    But the ld's warning as missing files (libmql1.so, libipc1.so, libnnz12.so, libons.so, and libclntshcore.so.12.1) are in the directory /home/santhosh/instantclient_12_1/lib as mentioned in the -rpath.
    Am I missing anything here? How can I purely enable QOCI in my Qt Creator?



  • I somewhat found a solution for this. It was a cache issue. For the first time, my qmake command was failed due to the fact that I didn't include the -rpath. The command I used for that is somewhere cached and subsequently, whenever I run correct qmake command with -rpath option, it was not taking my options and taking all options from the first failed command cached somewhere.

    rm -rf ./config.tests
    rm -f ./config.cache
    

    cleared those caches like above and executed the command said in question again, it started working now.


Log in to reply