Failure to build LabVIEW applicatio​n on Linux using "Shared library"

In order to create a LabVIEW application on linux without an X display, I complied the LabVIEW VI using the Linux Shared Library. I did this by right clicking on Build Specification and selecting New >> Shared Library, and in the Advanced section, checking the box labeled Use embedded version of run-time engine. At the end of the build process, a message came up informing that the build was unsuccessful, with the following message:
    "Error 127 occurred at System Exec: sh: gcc: command not found 
    The error code is undefined. No one has provided a description for this code, or you might have wired a number that is not an error code to the error code input."
I had no compling the LabVIEW VI in the normal fashion, so am confused about what the problem is.
Solved!
Go to Solution.

Hi Julian,
gcc is a C and C++ compiler on Linux.  An easy way to check if it is installed is to open a terminal and type "gcc", if the command is recognized then the package is already installed and the problem must lie elsewhere.  If this distrobution of Linux has a package manager included then it should be displayed in there as well.  If not then it could point to it being not installed or some dependency is missing making it not accessible from the command line.  Here is a link that should hopefully step you through installing gcc with Redhat: http://www.cyberciti.biz/faq/centos-linux-install-​gcc-c-c-compiler/ .
Justin D
Applications Engineer
National Instruments
http://www.ni.com/support/

Similar Messages

  • Communicating Between Multiple LabVIEW Executables on different computer using Shared Variables

    hi,
    I need to develop some executables which will be launched on different computer of a LAN. Some DATA are common. I need to share the data using shared variables.
    I usually used LabVIEW so I 'm familiar with shared variables but in this case, the RT target is a part of my
    project.
    I do I need to procceed in my case?
    thanks

    Ok but it's not my configuration and I haven't found my answer in the tutorial.
    You speak of a case where there is a computer and a RT target under the same LabView project. As I said earlier, I often use labview RT and shared variable between computer and RT target. But I assume here it's different.
    My question is : how do you acces to the SVE from 3 computers (without any RT target)? 
    1. If I create 3 labview projects using the same Shared Variable, do I need to use the same .lvlib on each project?
    2. Is it possible? 
    3. How can I configure where the SVE should be? When I use a RT target, It only depends where I put my Lvlib. But here there is 3 projects. 
    James
    Attachments:
    Sans titre.JPG ‏9 KB

  • How to build labview global variable into dll?And how to use it in vc++ program?

    Hi!
       I want to build labview application into dll and use vc++ to call it.The labview program is a little complex,for it has many interface to vc++ and has while loop in it.When I use vc++ to call it,I must use vc++ to do other things.That is to say,vc++ creates a new thread to provide for the labview dll to run.the vc main thread goes on to other things.But the vc++ main thread must communicate with the labview dll by setting its inputs' parameters and get the results of running labview dll.Can you advise me how to realize it?
       I think global variable of labview could be useful when realizing the communication betweeb vc thread and labview dll.So I want to ask whether the labview global variable could also be built into dll and use it.Could you please tell me how to realize my idea?
       Thank you!

    [email protected] wrote:
    Hi!
    I want to build labview application into dll and use vc++ to call
    it.The labview program is a little complex,for it has many interface to
    vc++ and has while loop in it.When I use vc++ to call it,I must use
    vc++ to do other things.That is to say,vc++ creates a new thread to
    provide for the labview dll to run.the vc main thread goes on to other
    things.But the vc++ main thread must communicate with the labview dll
    by setting its inputs' parameters and get the results of running
    labview dll.Can you advise me how to realize it?
       I
    think global variable of labview could be useful when realizing the
    communication betweeb vc thread and labview dll.So I want to ask
    whether the labview global variable could also be built into dll and
    use it.Could you please tell me how to realize my idea?
       Thank you!
    You
    can't access LabVIEW globals directly from a caller to the LabVIEW DLL.
    However there is no problem in providing specific accessor VI functions
    to that global and export them as additional functions from the DLL.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • LabView linux : error 7 when accessing shared library file

    Trying to wrap a shared object to LabVIEW Linux using Call Library Function Node VI I get an error 7 (non existing or moved file or missformed path) while the file is existing and path ok (I used FileDialog to be sure to have the correct path).
    This is really surprising since when opening 'Configure ...' menu I am able to select my shared object file and LabVIEW lists correctly the functions of the contained in the library.
    I don't how to deal with such an error and need help (I spent a lot of hours in trying to find the solution by myself). Surprisingly there is not example related to that in the Linux release of LabView (note: I run LAbVIEW 9).
    Many thanks in advance for any comments
    Christophe

    may be worth mentioning what you did incase others are having similar problems, congrats on solving your problem though
    Please remember to accept any solutions and give kudos, Thanks
    LV 8.6.1, LV2010,LV2011SP1, FPGA, Win7

  • How can I use a shared library made with the application builder?

    Hi,
    I am using LabVIEW 7.1 running on Slackware 10.1 (kernel 2.4.29) and I am trying to call a graph display from a C program that I use for debugging VME access from a VMIVME controler. So using the application builder I built the VI as a shared library (graph.vi -> graph.so) containing a function called "graph". In my main program the call to the dlopen fails with the error: "graph.so: undefined symbol: UninitLVClient". When I examin graph.so with nm I see that UninitLVClient and other LabVIEW functions are indeed undefined and using ldd shows that graph.so has dependencies only on libc.so.* and *linux*.so.* but not on LabVIEW related stuff. Those functions are defined in the liblv.so that's in the cintools directory but I have no idea if the user is supposed to use that.
    So I think I am missing an important concept here. Can somebody help or direct me to some documentation (I found lots of information about how to link external code to LabVIEW but nothing about how to link LabVIEW code to an external program)?

    Thanks Watermann,
    your message has been very useful so now I am linking to the proper library but I still have problems when trying to load dynamically the shared library produced with LabVIEW. It is strange that I could successfully load the lvrt library at loading time but it does not work when I am loading the library at execution time.
    I made a small LabVIEW program that prints a hello window and I am calling it from a C program. In the first program main.c I am linking to the lvrt library at loading time and it works but in the second one I am linking dynamically at execution time and it does not work. For my work I need to be able to load code done in LabVIEW at execution time. Any help is appreciated!
    Program main.c:
    // small program to call a LabVIEW shared library
    #include
    #include
    #include "hello.h" // got this from the LabVIEW builder, i.e. when I made the hello.so
    int main(void)
    printf("Hello from C!\nLets call LabVIEW now\n");
    hello();
    printf("Bye ... \n");
    return 0;
    The command to compile main.c, i.e. linking shared library lvrt when loading main program:
    gcc -Wall -I /usr/local/lv71/cintools/ -o main main.c hello.so -l lvrt
    The LD_LIBRARY_PATH has been defined and exported:
    $ LD_LIBRARY_PATH=$PWD
    $ export LD_LIBRARY_PATH
    IT WORKS!
    Program main2.c:
    // small program to call a LabVIEW shared library
    #include
    #include
    #include
    int main(void)
    void * h_lvrt;
    void * h_hello;
    void (* hello)(void);
    char * error;
    printf("Hello from C!\nLets call LabVIEW now\n");
    // open LabVIEW RunTime shared library
    // in my computer located at /usr/local/lib/liblvrt.so
    h_lvrt = dlopen("/usr/local/lib/liblvrt.so", RTLD_NOW);
    // check for error
    error = dlerror();
    if (error) {
    printf("error : could not open LabVIEW RunTime library\n");
    printf("%s\n", error);
    return 1;
    // open hello shared library
    // in my computer located at /home/darss/lv_call/hello.so
    h_hello = dlopen("hello.so", RTLD_NOW);
    // check for error
    error = dlerror();
    if (error) {
    // close LabVIEW RunTime shared library
    dlclose(h_lvrt);
    printf("error : could not open hello library\n");
    printf("%s\n", error);
    return 1;
    // get function hello from library hello.so
    hello = dlsym(h_hello, "hello");
    // check for error
    error = dlerror();
    if (error) {
    // close hello shared library
    dlclose(h_hello);
    // close LabVIEW RunTime shared library
    dlclose(h_lvrt);
    printf("error : could not get the hello function\n");
    printf("%s\n", error);
    return 1;
    // call hello function
    hello();
    // close hello shared library
    dlclose(h_hello);
    // close LabVIEW RunTime shared library
    dlclose(h_lvrt);
    printf("Bye ... \n");
    return 0;
    The command to compile main2.c, i.e. dynamically linking library lvrt at execution of main2 program:
    gcc -Wall -o main2 main2.c -l dl
    The LD_LIBRARY_PATH still defined and exported.
    IT DOES NOT WORK!
    Program output:
    Hello from C!
    Lets call LabVIEW now
    error : could not open hello library
    /home/darss/lv_call/hello.so: undefined symbol: WaitLVDLLReady

  • How to create a c++ shared library (.so) for linux real time (for myRio) with Eclipse to use in LabView?

    I tried already these Tutorials and Advices but I didn't find a solution:
    - http://www.ni.com/tutorial/14625/en/
    - http://www.ni.com/tutorial/14690/en/
    - http://forums.ni.com/t5/LabVIEW/Shared-Library-on-myrio-Linux-Real-time-system/m-p/2842540/
    - http://forums.ni.com/t5/LabVIEW/How-to-create-shared-library-for-linux-real-time-target-in/m-p/28218...
    - and some more
    I want use c++ codes on linux real time. For testing reasons I want to have a function that adds 2 values and gives the result.
    I've done these steps:
    1. writing a c++ file in Eclipse (see screensot 2)
    2. building a shared library (.so) from my c++ project in Eclipse (with Cross GCC)
    3. putting this file on myRio (path: /usr/local/lib/)
    4. creating a VI that calls this library from Labview with a "Call Library Function Node" (see screenshot3)
    5. Setting the properties for the "Call Library Function Node" (see screenshots 4-7)
    After I run this VI i get this error message: LabVIEW:  (Hex 0x627) The function name for the ... node cannot be found in the library. To correct this error, right-click the Call Library Function Node and select Configure from the shortcut menu. Then choose the correct function name. (see screenshot1)
    I've tried a lot things to solve this problem but I couldn't find a solution. Would be very happy if anyone can help me. I guess that I have to edit my c++ code to export my function (symbol). But I have no idea how to make it. I also tried it with a dll file in the same folder but it didn't help.
    Perhaps someone can send an example which works on myRIO.
    Thanks!
    screenshot1
    screenshot2
    screenshot3
    screenshot4
    screenshot5
    screenshot6
    screenshot7

     can see it in the screenshot8 there is a function called "_Z8AddierenddPd" instead of "Addieren". I copied this name to Labview (see screenshot9) and it worked.
    I'm sure that there is a way to compile the shared folder with gcc without decorations (mangling). But I don't know how. If someone has a recommendation I would be very glad!
    Prepend each function declaration that you want to be available without name decoration with
    extern "C" <your function declaration>
    Or if you have multiple functions you want to export you can in the header file where you declare your functions simply use:
    #ifdef __cplusplus
    extern "C" {
    #endif
    <all your function declarations>
    #ifdef __cplusplus
    #endif
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Opening panel to build an applicatio​n causes error 7

    As soon as I open the panel to "Build Application or Shared Library (DLL)" I get an error:
    "Error 7 occurred at Open VI Reference in Dist Call Set Busy.vi->Dist Cmp Setting to Disk Heir.vi->Build Application.vi"
    I can appear to setup the build, but when I "Build" the application I get the identical error and nothing is created.

    Error 7 means "file not found". From the source of the error, it looks like there something wrong with your LV installation.
    Try dropping Set Busy.vi in a diagram. It should be in the Application Control>>Cursor palette.
    If you can't drop or use it, then you need to find it and reinstall it. You can probably find it in your LabVIEW CD, but I would suggest simply trying a repair from the installation program.
    Try to take over the world!

  • How do setup FlexUnit in your CI build process on 64-Bit Linux

    Hello everyone. I am trying to setup FlexUnit in my build process and am using Rackspace cloud servers for my build server. I only have the option of Linux 64 bit distros or Windows 32b/64b. I started setting up and configuring everything on Linux but ran into problems installing the required stand alone player for test execution using FlexUnit. There is no 64-bit linux compatitble version of the stand alone player. In configuring the system to use the browser plugin on the machine instead of the stand alone player for executing the tests, I then get a manual interaction component which doesn't fit well with an automated CI build.
    Am I the only person out there trying to integrate FlexUnit into my CI process on a 64b Linux machine? Any pointers, tips, workarounds or general hypothetical ideas would be great!

    @mbbender - Answers below:
    > I have been able to get the Flash Plugin working in a browser on my 64b Ubuntu 10.4 system. However, from my understanding I can not use the flash plugin from a browser to properly execute a headless execution of my tests during the CI process. To execute the tests as part of the CI process I need the Flash Stand Alone Player.
    -- As of FlexUnit 4.1-beta2, you have the option of executing your tests using the stand-alone debug Flash Player using the default mechanism to launch that player or using a custom command, which could potentially point to the browser.  Check out the docs on the Ant task @ http://docs.flexunit.org/index.php?title=Ant_Task#Usage and the sample CI build using a browser @ http://github.com/flexunit/flexunit/blob/master/FlexUnit4SampleCIProject/build.browser.xml for more details on how to do this.
    > Are you saying that I can somehow use the Flash Plugin dependencies to install the Flash Stand Alone Player? If so, would I then need a 32b emulator wrapper for running the Stand Alone Player?  Or, are you suggesting that I can somehow use the Flash Plugin in the browser to do what I need to execute my tests during the Hudson build?
    -- Although I'm not a savvy Linux admin, it's my understanding that recent 64-bit Linux distros can execute 32-bit applications as well as 64-bit applications.  The only req I'm aware of is that the 32-bit version of the dependencies must be available.  In this case, executing the 32-bit version of the SA player should work from what I understand.
    > Do you have a CI build process setup on a Linux 64b CentOS system with FlexUnit? To be honest, I'm more concerned with the end result right now than learning how to do it on my own and would like to know if you can potentially help me get this done a little quicker if you are interested.
    -- I currently have a setup using 64-bit CentOS and running the 32-bit SA player, although it's not on Adobe's proper list of supported OSes.  We've worked with other folks who have the 32-bit SA player running with FlexUnit on Ubuntu 64-bit.  There was some feedback on some issues using older versions of openSUSE, but I don't know too many details re: the problem.
    Hope this helps.
    -Brian

  • In LabVIEW for Linux, cannot link to a shared library file (.so).

    Hello all,
    I'm having trouble using the Call Library Function Node within LabVIEW for Linux (using Ubuntu).  I can configure my Node correctly, and it sees the available function within it with all the proper parameters, but when I close the Call Library Function dialog box it does a quick search and asks me to Find the Shared Library Named "mySharedLibraryName."  If I select it again, it merely repeats this over and over until I cancel.  Has anyone seen this before or know what is causing this?  The .so file was compiled using gcc++ - is there anything specific that should have been included (does it need a header file)?  Could some missing file be causing this?
    Thanks,
    Jason

    The elf shared library format is a supported feature of all Linux distributions since about Linux 1.0 or earlier. So it is not really an issue that Ubuntu wouldn't support shared libraries as used by the LabVIEW Call Library Node. Since the Call Library Node seems to be able to see the exported functions during selection of the function it also doesn't seem to be a problem with proper export of the symbols.
    This leaves over some dependencies of the shared library on some other shared libraries including C runtime libraries. Was the shared library compiled on the system you try to use it? If not you may have an incompatibility of the C runtime library version used on the system that was used to compile the shared library and your Ubuntu system you try to load it.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Build AS3 AIR project on Linux for Android and iOS?

    We're about to use a build server for taking some work out of our hands (testing, building etc). The build server is running on Linux and therefore we would like to know if we can build the AS3 (AIR) sourcecode on the Linux environment. We usely create apps for Android and iOS.
    Can anyone give some more information on this? Is it true that the ADT doesn't run on Linux?

    FYI, I updated my blog post.  I found a program called ideviceinstaller (available in the Ubuntu repos ala apt-get install ideviceinstaller or from the website) that allows installation of .ipa files onto iOS devices from Linux.
    Previously that was the only development iteration step that required a Windows VM.  Now in my workflow, a VM is no longer required for iOS development.  (Obviously a Mac is still required to upload to the app store at the end.)
    Also, a bonus, here's a quick command to view UUID's authorized by the provisioning file inside an .ipa file:
    > unzip -c Main.ipa *.mobileprovision | strings | egrep -i string\>[0-9a-f]\{40\}
    <string>d9c2fee807324a18baf5a544ffa2c80f23d3****</string>
    <string>f634a0a95bc2327f6a26cb39cf18a01918cf****</string>
    <string>651e4284467d328e37c18988c981179b5909****</string>
    <string>c11d7eef800632d072da067d9b993624f25b****</string>
    <string>72d85ab26cd525a328d3a71e3fe416c61fd6****</string>

  • Make fails while building cldc 1.1 on Linux

    Dear All,
    Following is the software config:
    javac : "1.4.2_08"
    linux version: redhat linux 9
    kernel: 2.4.20-8 on an i686
    I am building cldc 1.1 on linux. I am facing a strange problem. After doing a make, the build process stops after these lines
    ====>
    ../tools/preverifier/build/linux/preverify -d classes tmpclasses
    make[1]: *** [compilefiles] Error 1
    make[1]: Leaving directory `/users/in1222c/cldc1/api'
    make: *** [all] Error 1
    <====
    All java files (including custom files that I have included), get compiled to the corresponding class files, but just after the preverification message appears, the build gives an error as above.
    Anyone faced this problem yet? If yes, what is that happenning wrong here.
    I will be glad for your comment and support on this.
    Regards,
    Hrishi.

    Dear All,
    Following is the software config:
    javac : "1.4.2_08"
    linux version: redhat linux 9
    kernel: 2.4.20-8 on an i686
    I am building cldc 1.1 on linux. I am facing a strange problem. After doing a make, the build process stops after these lines
    ====>
    ../tools/preverifier/build/linux/preverify -d classes tmpclasses
    make[1]: *** [compilefiles] Error 1
    make[1]: Leaving directory `/users/in1222c/cldc1/api'
    make: *** [all] Error 1
    <====
    All java files (including custom files that I have included), get compiled to the corresponding class files, but just after the preverification message appears, the build gives an error as above.
    Anyone faced this problem yet? If yes, what is that happenning wrong here.
    I will be glad for your comment and support on this.
    Regards,
    Hrishi.

  • Error 2: Failure to perform LabVIEW license activation

    I bought and downloaded LabVIEW student edition. When i downloaded it, it all went fine. Then when i got to the page to put in a serial #, i put the one that the download gave me, and a message popped up saying, "Error 2: Failure to perform LabVIEW License Activation" So, i tried to look up the problem and it said to disable my firewall and restart my computer and try to download again from scratch. When i did all of that, it still had the same problem and the same message. I dont know what to do...
    P.S. - I called the company that i bought the product from and they told me to call National Instruments and i did, the lady that answered was very rude and told me its not their problem, call the other company back. When i did, they said they were going to call NI. They called me back and told me to go to this site and post my question.

    That is really strange if y ou called and some lady told you it wasn't her problem.  If you got her name, you should contact customer service.
    As a matter of fact, you should contact your local customer representative.  Tell them you may become a long term client and wish to be treated that way..
    If you cannot automatically activate the software over the internet and have tried several times, then calling in may be the only way.  There are insatnces when you get the error message, but it still activates the software.  Did you re-start LabVIEW to see if it is now activated?  Did you try multiple times?

  • Install LabVIEW 2013 on Scientific Linux 6.4

    Has anyone successfully installed on SL6.4? I install and no response - try to start using icon but no errors or slash screens. Did put the 32 libc2 on the machine. It asked for kernel sources, but for 64 bit?. What is correct?
    Thanks,

    Zander,
    I have not installed LabVIEW 2013 on Scientific Linux 6.4 before, but I will see if I can help you out. First did you install LabVIEW 2013 32 bit or 64 bit? Second does just the LabVIEW shortcut on the desktop not work (icon) or can you just not load LabVIEW at all?
    Thanks

  • Creating Activation code for LabVIEW Applicatio​n Installer

    Hi,
    How could we create Activation code for LabVIEW Application Exe to restrict use to Single PC using LabVIEW settings/add-ons.
    I think NI should provide in-built feature in Application Builder to generate activation code as required.
    Regards,

    Or just vote for this idea.
    Try to take over the world!

  • Linux Cannot Create Shared Library to call from Labview. Anyone have any ideas?

    Hi there.  A while back i created a shared library (.dll) to call in labview which works great.  Lately i have been using Linux more and more and was hoping to recompile the shared library for use in Linux Labview.  My first go I am getting the following error #error "Unknown Linux platform"   from the platdefines.h.   Evidently it does not like my system.  Using QT creator on linux mint 64 bit.   Anyone have any ideas on how i can get this working?
    thanks so much!

    I have a few version questions: What version of Windows was this DLL orignally created in? What version of LabVIEW are you using? What version of Linux are you using? 
    I think you will also find this previous discussion forum thread useful: http://forums.ni.com/t5/LabVIEW/Calling-DLL-on-LabVIEW-for-Linux/td-p/58322

Maybe you are looking for