OCI: Compiling and Linking?

At the end of Chapter 1 of the OCI documentation, under
"Compiling and Linking", it says:
The details of linking an OCI program vary from system to
system. See your Oracle system-specific documentation and the
installation guide for more information about compiling and
linking an OCI application for your specific platform.
...except that none of the Linux-specific documentation online
(including the installation guide) covers compiling and linking.
I tried linking with libclntsh.so, but it gets an unresolved
symbol (slpmprodstab). I found this symbol in several of the .a
and .o files, but linking with them leads to other unresolved
symbols. Can someone please tell me what to do and/or point me
to the right documentation?
null

John,
I'm using:
export ORACLE_HOME=/oracle ### this is the must
make -f demo_rdbms.mk cdemo1 ### etc
Good luck.
John Stracke (guest) wrote:
: At the end of Chapter 1 of the OCI documentation, under
: "Compiling and Linking", it says:
: The details of linking an OCI program vary from system to
: system. See your Oracle system-specific documentation and the
: installation guide for more information about compiling and
: linking an OCI application for your specific platform.
: ...except that none of the Linux-specific documentation online
: (including the installation guide) covers compiling and
linking.
: I tried linking with libclntsh.so, but it gets an unresolved
: symbol (slpmprodstab). I found this symbol in several of the
.a
: and .o files, but linking with them leads to other unresolved
: symbols. Can someone please tell me what to do and/or point me
: to the right documentation?
null

Similar Messages

  • Using GCC on SunSolaris2.8 to compile and link sample OCI programs

    Hi,
    Does anyone have sample make file (or modified version of demo_rdbms.mk) or command to compile and link OCI demo programs using gcc?? I am trying to compile and link cdemo81.c from rdbms/demo directory.
    gcc related files are under /usr/local/bin and /usr/local/lib, /us/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1
    Thanks

    Hi,
    I finally got cdemo81.c to compile and link on Solaris 8 using Oracle 8.1.7.3. I got some help from one other person who had posted similar question on this forum. Following is the makefile that I am currently using to compile my oci code. Please note that you need to have $(ORACLE_HOME) and LD_LIBRARTY_PATH set before you try to compile using gcc.
    ************** Makefile Starts here ***********************************
    CPP=g++
    CC=gcc
    LD=ld
    CCFLAGS= -g
    CPPFLAGS=-g3 -Wall
    INCDIR=-I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/plsql/public -I$(ORACLE_HOME)/network/public
    LIBNAME=liboralib
    SOEXT=.so
    DLLINK=-shared -ldl
    ###SOFLAGS=-shared -Wl,-expect_unresolved -Wl,-soname,$(LIBNAME)$(SOEXT) $(LIBPATH)
    SOFLAGS=-shared -Wl
    LDFLAGS=-shared -expect_unresolved * -soname
    LIBPATH=-L$(ORACLE_HOME)/lib/ -L$(ORACLE_HOME)/rdbms/lib/ -R$(ORACLE_HOME)/lib/ -R$(ORACLE_HOME)/rdbms/lib/
    ORALIBS= -lnbeq8 -lnhost8 -lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -lnoname8 -lntcp8 \
    -lntcps8 -lnsslb8 -lntcp8 -lntns8 -ln8 -lnl8 -lnro8 -lnbeq8 -lnhost8 -lnus8 \
    -lnldap8 -lldapclnt8 -lnsslb8 -lnoname8 -lntcp8 -lntcps8 -lnsslb8 \
    -lntcp8 -lntns8 -ln8 -lnl8 -lclient8 -lvsn8 -lcommon8 -lgeneric8 \
    -lmm -lnls8 -lcore8 -lnls8 -lcore8 -lnls8 -lnbeq8 -lnhost8 -lnus8 -lnldap8 \
    -lldapclnt8 -lnsslb8 -lnoname8 -lntcp8 -lntcps8 -lnsslb8 -lntcp8 \
    -lntns8 -ln8 -lnl8 -lnro8 -lnbeq8 -lnhost8 -lnus8 -lnldap8 -lldapclnt8 \
    -lnsslb8 -lnoname8 -lntcp8 -lntcps8 -lnsslb8 -lntcp8 -lntns8 -ln8 \
    -lnl8 -lclient8 -lvsn8 -lcommon8 -lgeneric8 -ltrace8 -lnls8 -lcore8 \
    -lnls8 -lcore8 -lnls8 -lclient8 -lvsn8 -lcommon8 -lgeneric8 -lnls8 \
    -lcore8 -lnls8 -lcore8 -lnls8 -lnsl -lsocket -lgen -ldl -lsched \
    -lc -laio -lposix4 -lkstat -lm -lthread -lwtc8
    LIBS=$(ORACLE_HOME)/rdbms/lib/defopt.o $(ORACLE_HOME)/lib/sscoreed.o $(ORACLE_HOME)/lib/libclntsh.so $(ORACLE_HOME)/lib/nautab.o $(ORACLE_HOME)/lib/naeet.o $(ORACLE_HOME)/lib/naect.o $(ORACLE_HOME)/lib/naedhs.o $(ORALIBS)
    ##LIBS=$(ORACLE_HOME)/rdbms/lib/defopt.o $(ORACLE_HOME)/lib/sscoreed.o $(ORACLE_HOME)/lib/nautab.o $(ORACLE_HOME)/lib/naeet.o $(ORACLE_HOME)/lib/naect.o $(ORACLE_HOME)/lib/naedhs.o $(ORALIBS)
    ###LIBS=$(ORACLE_HOME)/rdbms/lib/ssdbaed.o $(ORACLE_HOME)/lib/nautab.o $(ORACLE_HOME)/lib/naeet.o $(ORACLE_HOME)/lib/naect.o $(ORACLE_HOME)/lib/naedhs.o $(ORALIBS)
    ORALIBSO=-lnetv2 -lnttcp -lnetwork -lncr -lclient8 -lvsn -lcommon8 -lgeneric8 \
    -lmm -lnlsrtl3 -lcore8 -lnlsrtl3 -lcore8 -lnlsrtl3 -lnetv2 -lnttcp \
    -lnetwork -lncr -lclient8 -lvsn -lcommon8 -lgeneric8 -lepc -lnlsrtl3 \
    -lcore8 -lnlsrtl3 -lcore8 -lnlsrtl3 -lclient8 -lvsn -lcommon8 -lgeneric8 \
    -lnlsrtl3 -lcore8 -lnlsrtl3 -lcore8 -lnlsrtl3 -lnsl -lm -ldl -lm \
    -ldl -lnetv2 -lnttcp -lnetwork -lncr -lnetv2 -lnttcp -lnetwork -lncr \
    -lnetv2 -lnttcp -lnetwork -lncr -lnetv2 -lnttcp -lnetwork -lncr \
    -lnetv2 -lnttcp -lnetwork -lncr -lsql
    ###-lnbeq8 -lnhost8 -lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -lnoss8 -lnoname8 -lntcp8 \
    #ORALIBS=-lnetv2 -lnttcp -lnetwork -lncr -lclient8 -lvsn -lcommon8 -lgeneric8 \
    # -lmm -lcore8 -lnlsrtl3 -lepc -lnsl -lm -ldl
    CPPOBJECTS=orabase.o orastmt.o
    HEADER=orabase.h orastmt.h
    .SUFFIXES: .cc .c
    ###.c.o:
    ###     $(CC) $(CCFLAGS) $(INCDIR) -o $@ -c $<
    .cc.o:
         $(CPP) $(CPPFLAGS) $(INCDIR) -o $@ -c $<
    #lib: $(CPPOBJECTS) $(HEADERS)
    #     $(CPP) $(CPPFLAGS) $(SOFLAGS) $(LIBPATH) -o $(LIBNAME)$(SOEXT) $(CPPOBJECTS) $(LIBS)
    #clean:
    #     $(RM) *.o core *~
    #distclean: clean
    #     $(RM) $(LIBNAME)$(SOEXT) so_locations
    ###ocimanager:     ocimanager.o
    ###     $(CC) -o $@ $(LIBPATH) $(LIBS) $<
    ocimanager.so: ../obj/ocimanager.o
         $(CC) $(LIBPATH) -o ocimanager.so -G ../obj/ocimanager.o $(LIBS)
    ##     gcc -L$(ORACLE_HOME)/lib/ -L$(ORACLE_HOME)/rdbms/lib/ -o ocimanager.so -G ../obj/ocimanager.o $(LIBS)
    ../obj/ocimanager.o: ocimanager.c ocimanager.h
         $(CC) $(CCFLAGS) $(INCDIR) -o ../obj/ocimanager.o -c ocimanager.c
    **************** Makefile ends here*********************************************
    Hope this helps
    Brunda

  • Compiling and linking C library in C++

    I am using a C library (Solstice FTAM v9.0) in my C++ program. One of the library header files has a declrartion
    short class;
    in one of the structures.
    The C++ compiler (Sun C++ 5.4 on Solaris 8) gives error. What we should do to compile and link this library in C++.

    You can use pointer to this structure without including the header that contains its definition, if it is possible, of course.
    Also, it should be possible to #define class to smth else just before including this header and then #undef'ing it. If this C library comes in binary form, it shouldn't cause any problems since memory layout won't be affected; if it comes in source code form, you can always compile it with -Dclass=smth_else on the command line and reference this foul structure field from your C++ code accordingly.

  • Runtime error after successful compile and link with cl.exe

    Finally, got the configuration for cl.exe and link.exe right and got a successful compile and link to produce a dll. Then ran the main method of my Java class. The main method calls the constructor, and loading the class runs the static block which loads the native dll. I get one of those error files of the type hs_err_pid4064.log. The file is as follows:
    # An unexpected error has been detected by Java Runtime Environment:
    # Internal Error (0xe06d7363), pid=4064, tid=3576
    # Java VM: Java HotSpot(TM) Client VM (10.0-b22 mixed mode, sharing windows-x86)
    # Problematic frame:
    # C [kernel32.dll+0x12aeb]
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    --------------- T H R E A D ---------------
    Current thread (0x00395800): JavaThread "main" [_thread_in_native, id=3576, stack(0x003b0000,0x00400000)]
    siginfo: ExceptionCode=0xe06d7363, ExceptionInformation=0x19930520 0x003fdf14 0x02de7b04
    Registers:
    EAX=0x003fde4c, EBX=0x00000000, ECX=0x00000000, EDX=0x02f80600
    ESP=0x003fde48, EBP=0x003fde9c, ESI=0x003fdedc, EDI=0x003fdedc
    EIP=0x7c812aeb, EFLAGS=0x00000206
    Top of Stack: (sp=0x003fde48)
    0x003fde48: 02de1de0 e06d7363 00000001 00000000
    0x003fde58: 7c812aeb 00000003 19930520 003fdf14
    0x003fde68: 02de7b04 02e80087 003fdf14 003fdf28
    0x003fde78: 02e99500 00000039 003fde70 00000039
    0x003fde88: 003fdec8 02e81a50 02eabf00 003fdf14
    0x003fde98: 003fdf28 003fdedc 02dce583 e06d7363
    0x003fdea8: 00000001 00000003 003fded0 02a72388
    0x003fdeb8: 00000000 e06d7363 00000001 00000000
    Instructions: (pc=0x7c812aeb)
    0x7c812adb: 8d 7d c4 f3 a5 5f 8d 45 b0 50 ff 15 10 15 80 7c
    0x7c812aeb: 5e c9 c2 10 00 85 ff 0f 8e 36 93 ff ff 8b 55 fc
    Stack: [0x003b0000,0x00400000], sp=0x003fde48, free space=311k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C [kernel32.dll+0x12aeb]
    C [summarizer37.dll+0x1e583]
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    v ~BufferBlob::Interpreter
    v ~BufferBlob::Interpreter
    v ~BufferBlob::Interpreter
    v ~BufferBlob::StubRoutines (1)
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    0x02a66000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3108, stack(0x02d10000,0x02d60000)]
    0x02a58000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2488, stack(0x02cc0000,0x02d10000)]
    0x02a56c00 JavaThread "Attach Listener" daemon [_thread_blocked, id=2508, stack(0x02c70000,0x02cc0000)]
    0x02a56000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3720, stack(0x02c20000,0x02c70000)]
    0x02a51800 JavaThread "Finalizer" daemon [_thread_blocked, id=2968, stack(0x02bd0000,0x02c20000)]
    0x02a4d400 JavaThread "Reference Handler" daemon [_thread_blocked, id=600, stack(0x02b80000,0x02bd0000)]
    =>0x00395800 JavaThread "main" [_thread_in_native, id=3576, stack(0x003b0000,0x00400000)]
    Other Threads:
    0x02a4c000 VMThread [stack: 0x02b30000,0x02b80000] [id=2528]
    0x02a67000 WatcherThread [stack: 0x02d60000,0x02db0000] [id=1604]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 960K, used 195K [0x22960000, 0x22a60000, 0x22e40000)
    eden space 896K, 21% used [0x22960000, 0x22990c38, 0x22a40000)
    from space 64K, 0% used [0x22a40000, 0x22a40000, 0x22a50000)
    to space 64K, 0% used [0x22a50000, 0x22a50000, 0x22a60000)
    tenured generation total 4096K, used 0K [0x22e40000, 0x23240000, 0x26960000)
    the space 4096K, 0% used [0x22e40000, 0x22e40000, 0x22e40200, 0x23240000)
    compacting perm gen total 12288K, used 22K [0x26960000, 0x27560000, 0x2a960000)
    the space 12288K, 0% used [0x26960000, 0x269658c8, 0x26965a00, 0x27560000)
    ro space 8192K, 66% used [0x2a960000, 0x2aeb0e10, 0x2aeb1000, 0x2b160000)
    rw space 12288K, 52% used [0x2b160000, 0x2b7b04c8, 0x2b7b0600, 0x2bd60000)
    Dynamic libraries:
    0x00400000 - 0x00423000      C:\Program Files\Java\jdk1.6.0_06\bin\javaw.exe
    0x7c900000 - 0x7c9af000      C:\WINDOWS\system32\ntdll.dll
    0x7c800000 - 0x7c8f6000      C:\WINDOWS\system32\kernel32.dll
    0x77dd0000 - 0x77e6b000      C:\WINDOWS\system32\ADVAPI32.dll
    0x77e70000 - 0x77f02000      C:\WINDOWS\system32\RPCRT4.dll
    0x77fe0000 - 0x77ff1000      C:\WINDOWS\system32\Secur32.dll
    0x7e410000 - 0x7e4a1000      C:\WINDOWS\system32\USER32.dll
    0x77f10000 - 0x77f59000      C:\WINDOWS\system32\GDI32.dll
    0x7c340000 - 0x7c396000      C:\Program Files\Java\jdk1.6.0_06\jre\bin\msvcr71.dll
    0x6d870000 - 0x6dac0000      C:\Program Files\Java\jdk1.6.0_06\jre\bin\client\jvm.dll
    0x76b40000 - 0x76b6d000      C:\WINDOWS\system32\WINMM.dll
    0x6d320000 - 0x6d328000      C:\Program Files\Java\jdk1.6.0_06\jre\bin\hpi.dll
    0x76bf0000 - 0x76bfb000      C:\WINDOWS\system32\PSAPI.DLL
    0x6d820000 - 0x6d82c000      C:\Program Files\Java\jdk1.6.0_06\jre\bin\verify.dll
    0x6d3c0000 - 0x6d3df000      C:\Program Files\Java\jdk1.6.0_06\jre\bin\java.dll
    0x6d860000 - 0x6d86f000      C:\Program Files\Java\jdk1.6.0_06\jre\bin\zip.dll
    0x10000000 - 0x10006000      D:\Servers\SummarizerServer\native\jsummarizer.dll
    0x02db0000 - 0x02df2000      D:\Servers\SummarizerServer\native\summarizer37.dll
    0x02e00000 - 0x02f6d000      D:\Servers\SummarizerServer\native\platform37.dll
    0x4a800000 - 0x4a893000      D:\Servers\SummarizerServer\native\icuuc30.dll
    0x4ad00000 - 0x4b52d000      D:\Servers\SummarizerServer\native\icudt30.dll
    0x5b860000 - 0x5b8b5000      C:\WINDOWS\system32\NETAPI32.dll
    0x77c10000 - 0x77c68000      C:\WINDOWS\system32\msvcrt.dll
    VM Arguments:
    jvm_args: -Djava.library.path=native
    java_command: com.sra.pipeline.servers.summarizer.JSummarizer
    Launcher Type: SUN_STANDARD
    Environment Variables:
    JAVA_HOME=C:\Program Files\Java\jdk1.6.0_06
    CLASSPATH=.;C:\Program Files\Java\jre1.6.0_06\lib\ext\QTJava.zip
    PATH=D:\Servers\SummarizerServer\native;C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
    USERNAME=Jim Jones
    OS=Windows_NT
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 7, GenuineIntel
    --------------- S Y S T E M ---------------
    OS: Windows XP Build 2600 Service Pack 3
    CPU:total 1 (1 cores per cpu, 1 threads per core) family 15 model 2 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2
    Memory: 4k page, physical 1048032k(245796k free), swap 2521804k(1060880k free)
    vm_info: Java HotSpot(TM) Client VM (10.0-b22) for windows-x86 JRE (1.6.0_06-b02), built on Mar 25 2008 01:22:05 by "java_re" with MS VC++ 7.1
    time: Mon Sep 01 15:22:10 2008
    elapsed time: 0 seconds
    The dll I'm wrapping is C++ VC++ compiled.
    Would like to know what I do to trouble-shoot this error and hope to fix it?
    Jim

    Using Java print statement was able to show that the my JNI dll was being loaded and that the problem was in the first call to one of my JNI functions. Then by using "DebugBreak()" in that function and gradually moving it down line by line through the function was able to isolate the line causing the problem. Unfortunately it is the line where I call a function from the dll I'm wrapping. See newer thread.

  • How to compile and link a C program that uses the FSEvents framework

    I've been trying to compile a program from the command line that uses the FSEvents framework. I can compile and link the code in Xcode and it runs correctly.
    At the moment I have the following command line:
    cc -Wall -g -o Watcher *.c -framework CoreFoundation -framework FSEvents
    I'm running Snow Leopard and noticed that FSEvents is not in the Frameworks directory under /System/Library as it was in Leopard.
    The link error is:
    ld: framework not found FSEvents
    collect2: ld returned 1 exit status

    I'm not sure what the point is if it builds in Xcode, but the build log should show you every command it uses throughout the process--copy and paste.

  • ProC app. compiling and link problem

    Created a Pro*C application called "sample1.pc". Compiled to a get object file ("sample1.o"). Created a library using this object file as follows:
    ar -v -q libshr.a sample1.o
    Wrote a main.c application making a call to one of the extern functions which accesses Oracle through Pro*C calls.
    When I compile and link to my library, I get the following error.
    Undefined first referenced
    symbol in file
    sqlcxt /export/home/mydir/temp/libshr.a(sample1.o
    sqlorat /export/home/mydir/temp/libshr.a(sample1.o
    ld: fatal: Symbol referencing errors. No output written to t
    Following is the cc command given to compile and link:
    cc -o t artest.c -I/export/home/mydir/temp /opt/uxbox/oracle/product/7.3.3.3/lib/libserver.a -lm -lthread -L/export/home/mydir/temp lshr
    Would like to know what needs to be done to successfully call my proC function from "main.c".
    Thanks in advance,
    -NM

    Try including libsql.a which compiling..
    Venkat

  • Compiling and linking Pro*c

    Hi All.
    i want to know the complete process os compiling and linking Pro*c programs.
    Q:1. Do i need to install visual studio?
    Q:2. If yes, please tell me complete procedure for setting environment variables and usage.
    Q:3. If visual studio is not required, how can i compile and link Pro*c programs.
    i heard that we can compile and link using COMPLINK.BAT
    if yes, how to set the complink.bat into execution(ie any paths need to be modified in .bat file)
    need help urgent.
    thanx in advance

    Q:1. Do i need to install visual studio? -
    Yes you need this
    Q:2. If yes, please tell me complete procedure for setting environment variables and usage.:
    Refer V.Studio installation manual and PROC++ Programmers Guide.
    Q:3. If visual studio is not required, how can i compile and link Pro*c programs.
    Yes you need this

  • Is it possible work (compile and link wi

    thout errors) very well one program written and compiled on Linux with gcc command for C program into Labview ? I know Labview support C codes, but I don't know if support some program done on another operating system, like Linux with other compiler (gcc).Is it possible work (compile and link without errors) very well one program written and compiled on Linux with gcc command for C program into Labview ? I know Labview support C codes, but I don't know if support some program done on another operating system, like Linux with other compiler (gcc). Because in Linux we have different device drivers (/dev/*) to access peripherals, like serial port RS-232. However, can I copy source code from Linux to "Call library Functional Node"
    tool ? And work it very well like in Linux before ?

    thout errors) very well one program written and compiled on Linux with gcc command for C program into Labview ? I know Labview support C codes, but I don't know if support some program done on another operating system, like Linux with other compiler (gcc).Hopefully, the differences in the implementations of the language itself would be fairly well documented. Therefore I would suspect that the biggest problem you'll have in this port is when the code starts trying to connect to the outside world--like the serial ports you mentioned.
    Personally, if I had documented C code (or at least a reasonable description of what the code is supposed to do) I would say to heck with CINs and just port the application to LV. You probibly won't spend any more time doing a complete port and the result will be more extensible and maintainable that the C ever was (or could ever be). But that's just me and my aversion to doing things the hard way...
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Runtime error after compiling and linking functions containing XDK calls

    We have a preexisting application in C distributed across multiple shared objects - on HPUX.
    $ORACLE_HOME/xdk/include was included in the include path and the programs were compiled. Linking also was successful.
    However at runtime we get errors of the form:
    /usr/lib/dld.sl: Unresolved symbol: XmlCreate__FP6xmlerrPUce (code) from ./lib_my_so_name.so
    Clearly it's not able to locate the shared libraries corresponding to the xdk since XmlCreate() is not getting resolved.
    Where would these libraries be, what are their names on HPUX, and are they installed by default? If not is the installation procedure documented anywhere.
    We'll need this information for both HPUX and AIX.

    * Don't post that much code. There should never be a reason to. You should be able to break your code down into small enough pieces that you can post a small example that demonstrates your problem.
    * When you do post code, use [code] and [/code] tags to make it readable. You can use the code button on the message entry page.
    * The stack trace will tell you which line the NPE occurred on, where it was called from, where that was called from, etc. You can use that to help you find your error. Look at the line it's complaining about. What references are on that line followed by a dot, and what arrays do you try to access the elements of. One of those must be null.
    * Now that you know what[b] is null, put in a bunch of print statements to track [b]how it got to be null.

  • Problem with pro*c compilation and linking

    Hi all,
    I have a problem running the pro*c program on an windows environment.
    I have oracle9i and visual studio .net. Ya kinda strange about the combo, but need to live with it.
    I create a .pc file and precompile it using oracle pro*c/c++ precompiler. so now I got the .c file.
    I used .net command line to compile this .c file
    It gave me the .obj file. Now I am getting a link error. I am not sure how I need to link the linkfile.
    Let me know if you have any suggestions.
    Thank you,
    -Raghu

    Make sure you are including the Pro*C library. The platform docs tell you explicitly what the library name is. I think for 9i it is called orasql9.lib.

  • How to compile and link the LabView program(G) with some function written in C?

    Before, some employee in our company developed some program which was written in LabView (G). Now we want to add some new function with has already been done in C++. Can we combine them together? how to do it?

    Hi;
    To use external code in LabVIEW, you can create a dynamic link library (.dll) that you can call from LabVIEW or a Code Interface Node (CIN). The instructions on how to make any of those are in National Instruments manual Using External Code in LabVIEW, which is included with LabVIEW, or you can download it from NI website.
    Also, in the knowledge base there is a "External Code for LabVIEW - CIN / DLL - Starting Point" page.
    If, on the contrary, you want to use LabVIEW code on your C application, you can build dll's in LabVIEW. Depending on your version of LabVIEW, you may need Application Builder to do so.
    Of course, you can also use other techniques like, for example, making that your LabVIEW application save the data in a file and then your C++ application read the file and continues from there, or vice versa. You can also use the "System Exec.vi" in LabVIEw to do that, assuming your C code is an executable.
    Regards;
    Enrique
    www.vartortech.com

  • Problem with OCI call  and  how to install and use 'DEBUG_EXTPROC' on Linux

    Hi,
    Can any one let me know how I can install and use this debug_extproc package. I have installed oracle XE server on Linux machine(32-bit).
    When I use : DEBUG_EXTPROC.STARTUP_EXTPROC_AGENT' ... i get an error saying that : it is not declared.
    I tried looking in all the directories but did not find the dbgextp.sql(which is required in order to install that package).And tried searching on google but could not get any relevant information.
    Also I am newbie to OCI call interface and also to C programming too: I have coded a external procedure or custom user aggregate in C. But since I was using C++ : 'set' STL. I have compiled my program using g++ instead of gcc and I have correspondingly modified the make file in public/demo directory.
    So, is it fine to do it that way: using OCI (instead of OCCI(C++)) but again compiling the pgm as a regular C++ using g++ instead of gcc.(But rest of the pgm including printf statements : everything is in C).
    Also I have created the library from my : custagg.so library:
    SQL> create or replace library custagg is '$ORACLE_HOME/lib/custagg.so'
    But my aggregate function implemented as external C function using OCI is either not recognised or else : if recognized then there is some error because of which i am getting the following errors : ORA-06522
    SQL> select MinDistance(TT) from egg1;
    select MinDistance(TT) from egg1
    ERROR at line 1:
    ORA-06520: PL/SQL: Error loading external library
    ORA-06522: /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/custagg.so:
    cannot dynamically load executable
    Please kindly answers my queries and trying to resolve this for almost 4 days now and could not find any clue on how to get this done.
    Thanks,
    -NN

    #/bin/make
    # Make file for OCI,OCCI and ODBC demos
    # Usage :
    # For compiling & linking the cdemo81.c file
    # make -f demo_xe.mk buildoci CDEMOEXE=cdemo81 CDEMOOBJS=cdemo81.o
    .SUFFIXES: .o .c .cpp
    ICINCHOME=$(ORACLE_HOME)/rdbms/public/
    ICLIBHOME=$(ORACLE_HOME)/lib
    ICLIBPATH=-L$(ICLIBHOME)
    THREADLIBS=-lthread
    CCLIB=$(ICLIBPATH) -lclntsh $(THREADLIBS)
    OCCILIB=$(ICLIBPATH) -locci -lclntsh $(THREADLIBS)
    CCINCLUDES = -I$(ICINCHOME)
    CCFLAGS=$(CCINCLUDES) -D_REENTRANT -g -xs
    LDFLAGS=
    SO_EXT=.so
    EXTLDFLAGS=$(LDFLAGS) -shared
    REMOVE=rm -rf
    MKLINK=ln
    MAKE=make
    MAKEFILE=demo_xe.mk
    CDEMOEXE=custagg.so
    CDEMOOBJS=custagg.o
    OCCIDEMO=occidml
    OCCIOBJDEMO=occiobj
    OTT=$(ORACLE_HOME)/bin/ott
    OCCIOTTUSR=hr
    OCCIOTTPWD=hr
    ODBCDEMOEXE=odbcdemo
    ODBCDEMOOBJS=odbcdemo.o
    AQDEMOEXE=ociaqdemo00
    AQDEMOOBJS=ociaqdemo00.o
    EXTDEMO=extdemo2.so
    CC=/usr/bin/g++
    echo "LIBCLNT value is :" $(LIBCLNT)
    echo "CC value is :" $(CC)
    .c.o:
    g++ -c -I$(ICINCHOME) $(CCFLAGS) $<
    all: clean buildoci
    echo "LIBCLNT value is :" $(LIBCLNT)
    buildoci: $(LIBCLNT) $(CDEMOOBJS)
    g++ -o $(CDEMOEXE) $(LDFLAGS) $(CDEMOOBJS) $(CCLIB)
    echo "CC value is :" $(CC)
    echo "LIBCLNT value is :" $(LIBCLNT)
    clean:
    $(REMOVE) $(CDEMOOBJS) $(CDEMOEXE)
    # This port-specific file is currently empty on Solaris. Product
    # lines may use this file to override compiler definitions and
    # flags used in occi.mk.
    # Linux compiler definitions
    CC=/usr/bin/gcc
    cc=/usr/bin/gcc
    CCFLAGS=$(CCINCLUDES) -DLINUX -D_GNU_SOURCE -D_REENTRANT -g
    LDFLAGS=-g
    # This macro CCINCLUDES has to be redefined on Linux because of
    # the existence of the 'new' directory in t_work. The name new
    # clashes with a system header file.
    CCINCLUDES = -idirafter .
    THREADLIBS=-lpthread
    ifdef BUILD_CCC296
    CC=/usr/bin/g++296
    endif
    And I am executing the make file using the command :
    make -f demo12.mk buildoci CDEMOEXE=custagg.so CDEMOOBJS=custagg.o
    I am not getting any error while running this make file.
    Can you please tell me whether PLSQL/Oracle is able to locate the file or not. Incase, if it is locating the file but due to some error in the custagg.so it is throwing that error. If this is the case, is there any way that i can debug the C program .....how can i install the debug_extproc package.. I am really new to C & OCI ... if the custagg.so is being located then there might be some problem with the way I am dynamically allocating memory to some variables.
    Please kindly reply to this Post/response.
    Please let me know if you also want to see my program code.
    Thanks & Regards,
    -NN

  • OCI compilation with VC++6.0

    I am trying to write a code to insert data into Oracle Spatial DB through OCI. Right now, I just wrote some basic functions using OCI, but when I compiled the code, there came fatal errors.
    fatal error C1010: unexpected end of file while looking >for precompiled header directive
    Error executing cl.exe.After I changed precompiled file option from /Yu to /YX, these error came.
    c:\oracle\ora92\oci\include\ort.h(761) : error C2065: 'OCIEnv' : undeclared identifier
    c:\oracle\ora92\oci\include\ort.h(761) : error C2065: 'env' : undeclared identifier
    c:\oracle\ora92\oci\include\ort.h(761) : error C2065: 'OCIError' : undeclared identifier
    c:\oracle\ora92\oci\include\ort.h(761) : error C2065: 'err' : undeclared identifier
    c:\oracle\ora92\oci\include\ort.h(761) : error C2065: 'tdo' : undeclared identifier
    c:\oracle\ora92\oci\include\ort.h(761) : error C2275: 'OCIType' : illegal use of this type as an expression
    c:\oracle\ora92\oci\include\ort.h(691) : see declaration of 'OCIType'
    I included <oci.h> and <oci1.h>. I set OCI include directory and library directory correctly and added "oci.lib" and "ociw32.lib" into Link section. Could you help me to Long postings are being truncated to ~1 kB at this time.

    OCCI in Oracle 10gR1 is built using VC6
    You can download the Client from
    http://www.oracle.com/technology/software/products/database/oracle10g/10gr1.html

  • How to compile and execute lex,yac,c and java programs

    its the 3rd day on my New MacBook pro..
    as i just migrated from windows to mac i love to work on this..
    The main problem  is i DON't know .......
    how to compile and execute
    1) lex and yac programs
    2) c program
    3) java program
    so please help me
    THIS is the error i got   a1.l is a program
    i got the same error when i used  gcc
    $ lex a1.l
    $ cc lex.yy.c                                 
    Undefined symbols:
      "_yywrap", referenced from:
          _yylex in cc8QDQjW.o
          _input in cc8QDQjW.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status

    Is the problem that you don't know how to compile and execute these programs on a Mac, or just that you don't know how to compile and execute them?
    Mac OS X is really just a version of BSD Unix, as far as programs like like bison, flex and gcc are concerned...and even when Apple specific versions are provided in the Developer Tools, there are symlinks in the usual places in the Unix file hierarchy.
    For problems with lex and yacc, I suggest you start with their own references, for example, here.
    Or you could just use %option noyywrap, if you only have one file to scan.
    Or you could link to libfl.a using -lfl and use the default version from that library.
    But you really should (as Keith Barkley was subtly hinting at) learn how these tools work and why they work that way.

  • How to compile and run java files on a mac using command line?

    can someone tell me or link me to some article on how to compile and run java files from command line on a mac? I have mac OS X leopard

    What do you mean by "where to put them" ? What do you want to put anywhere ?
    Have you read Peter's comment in brackets ? Perhaps you have a classpath problem ?
    Edited by: Michael_Knight on Aug 31, 2008 4:23 AM

Maybe you are looking for

  • Fault message in Asynchronous messages - SXMB_MONI in PI problem

    Hello, I am working on File to Proxy asynchrnous interfaces.  I am using fault message type on inbound message interfaces. I have done all the configuration according to below link /people/shabarish.vijayakumar/blog/2006/11/02/fault-message-types--a-

  • Import Invoice via DTW - DocDate

    Dear Experts, I tried to import Invoice via DTW. I filled the 'DocDate' column in the oInvoice template with '20080102'. But when I checked the invoice from the A/R Invoice module the result was 20080504. Why DTW uses my system date instead of the da

  • Timed Loop in Shared Lib caused LabWindow program to NOT exit

    I have a shared Lib created in LabView that I call from LabWindows.  If I create a VI with nothing but a Timed Loop and no other code, my Labwindows program will not terminate.  (Even if I don't call the library function (VI) containing the Timed Loo

  • Is there anyway to lock CSS rules?  What's happening in design view?

    Hi, I have no idea what I've  done, but I've accidentally  deleted some CSS rules.  Now my design view shows almost a random pattern, yet most things seem to still be working when I view it in a browser. So, Is there a way to lock CSS rules so that y

  • Activate Illustrator

    I have a legitimate CD. I see you no longer support acivations for CS2 in the install. I found the web page, but don't understand the instructions. Do I need to download Illustrator 7?  Then CS2? You weren't clear about what registered components to