Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [Solved] Problems building Oracle Call Interface (OCI) Plugin on Windows
Forum Updated to NodeBB v4.3 + New Features

[Solved] Problems building Oracle Call Interface (OCI) Plugin on Windows

Scheduled Pinned Locked Moved General and Desktop
20 Posts 4 Posters 20.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    goetz
    wrote on last edited by
    #5

    [quote author="ionwind" date="1307431973"]
    So the problem and solution was rather trivial here, I just didn't notice it. The problem with noticing this problem is that the compiler or builder doesn't think that calling member functions of a not-constructed class is actually an error (C++, that is).[/quote]

    If you have pointers, the compiler can't know. You might have initialized that pointer somewhere in a plugin or a lib, which the compiler doesn't even see on compile time.

    So, this happens from time to time - good to know that the solution is that easy and that it is not a bug in the libs :)

    http://www.catb.org/~esr/faqs/smart-questions.html

    1 Reply Last reply
    0
    • N Offline
      N Offline
      nilotpal
      wrote on last edited by
      #6

      Hi,

      I am slogging with the OCI plugin for Qt4.7.3.

      After completing all the steps mentioned by ionwind when I execute nmake I get the following error:

      @g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-ps
      eudo-reloc -mthreads -Wl -shared -Wl,--out-implib,debug\libqsqlocid4.a -o debug
      qsqlocid4.dll debug/main.o debug/qsql_oci.o debug/moc_qsql_oci.o -L"c:\QtSDK
      Desktop\Qt\4.7.3\mingw\lib" debug\qsqlocid_resource_res.o -loci -lQtSqld4 -lQtCo
      red4
      c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -loci
      collect2: ld returned 1 exit status
      NMAKE : fatal error U1077: 'C:\QtSDK\mingw\bin\g++.EXE' : return code '0x1'
      Stop.
      NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\bi
      n\nmake.exe"' : return code '0x2'
      Stop.@

      The compiler says -loci can't be found.

      I am running Oracle Express 10g on a Windows 7 Ultimate machine.

      What is that I am missing here?

      1 Reply Last reply
      0
      • N Offline
        N Offline
        nilotpal
        wrote on last edited by
        #7

        I found the problem. OCI.dll path was missing in environment variable.

        Once updated I was able to compile the driver.

        1 Reply Last reply
        0
        • D Offline
          D Offline
          denonth
          wrote on last edited by
          #8

          how did you add oci.dll path

          1 Reply Last reply
          0
          • I Offline
            I Offline
            ionwind
            wrote on last edited by
            #9

            Adding the path to environment variable depends on the system you're using. Try searching the web with "add environment variable to path".
            I'd gladly give more specific advice if I could remember better how I did things back then.

            1 Reply Last reply
            0
            • D Offline
              D Offline
              denonth
              wrote on last edited by
              #10

              I have added to PATH variable this C:\XEClient\bin\oci.dll
              But how to use it?

              1 Reply Last reply
              0
              • D Offline
                D Offline
                denonth
                wrote on last edited by
                #11

                And when I perform mingw32-make i get error that -loci is missing

                1 Reply Last reply
                0
                • N Offline
                  N Offline
                  nilotpal
                  wrote on last edited by
                  #12

                  Avoid giving specific file path in environment variable, so update the path variable with C:\XEClient\bin

                  If you still get the -loci missing error, try copying the dll to system directory (eg. C:\windows\system32) and your make should find it without any problem.

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    denonth
                    wrote on last edited by
                    #13

                    You mean like perform this line : set PATH=%PATH%;c:\Windows\System32
                    before nmake?
                    If that's what I need to do then it's not working still.
                    Any other suggestion

                    1 Reply Last reply
                    0
                    • N Offline
                      N Offline
                      nilotpal
                      wrote on last edited by
                      #14

                      Use set PATH = %PATH%;c:\XEClient\bin & then run nmake or copy the DLL file to windows\system32

                      Another option is to edit the environment variable in system properties dialog to make it accessible from all locations.
                      [Control Panel -> System -> Advanced System Settings -> Advanced Tab -> Environment Variable]

                      Sometimes a system restart is required for the changes to become effective.

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        denonth
                        wrote on last edited by
                        #15

                        nothing seems to be working
                        i have done what you have said, even went to enviroment dialog and make new user variable
                        PATH c:\XEClient\bin
                        and system variable had path already so I added c:\XEClient\bin and c:\windows\system32 and it's not working

                        1 Reply Last reply
                        0
                        • N Offline
                          N Offline
                          nilotpal
                          wrote on last edited by
                          #16

                          Can you mail me the nmake output? May help in solving the issue.

                          1 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            denonth
                            wrote on last edited by
                            #17

                            @mingw32-make -f Makefile.Debug
                            mingw32-make[1]: Entering directory C:/QtSDK/QtSources/4.7.4/src/plugins/sqldrivers/oci' g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlocid4.a -o debug\qsqlocid4.dll debug/main.o debug/qsql_oci.o debug/moc_qsql_oci.o -L"c:\QtSDK\Desktop\Qt\4.7.4\mingw\lib" debug\qsqlocid_resource_res.o -loci -lQtSqld4 -lQtCored4 mingw32-make[1]: Leaving directory C:/QtSDK/QtSources/4.7.4/src/plugins/sqldrivers/oci'
                            @
                            I didn't get all code from output hmm strange

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              denonth
                              wrote on last edited by
                              #18

                              is this helping or you need all that is on screen, because i am using this command nmake > c:\cmd.txt and I don't get all code from it

                              1 Reply Last reply
                              0
                              • N Offline
                                N Offline
                                nilotpal
                                wrote on last edited by
                                #19

                                from the above i can't make out if there's an error, it appears that make has found the dependency and driver has been compiled.

                                What is there in your QTDIR\src\plugins\sqldrivers\oci\debug directory? if possible send the full debug to nilotpal2007[AT]gmail[DOT]com

                                1 Reply Last reply
                                0
                                • I Offline
                                  I Offline
                                  ionwind
                                  wrote on last edited by
                                  #20

                                  To those who might have problems with -loci, try replacing -loci with the path to oci.dll (like C:\XEClient\bin\oci.dll) in the both Makefile.Release and Makefile.Debug files on LIBS section.

                                  1 Reply Last reply
                                  0

                                  • Login

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • Users
                                  • Groups
                                  • Search
                                  • Get Qt Extensions
                                  • Unsolved