Should I use a shared library?

Hi,
This is the setup. I am working in two different applications, one to be compiled for desktop use (AIR) and one to be compiled for the web. They are part of the same project and use the same visual components, but they are completely different apps. When a visual component is changed in one application then it should also change in the other one.
Is this a good situation to use a shared library fla?
I am new to the concept of shared libraries and I am considering the options.
On one had I would not have to update 2 applications everytime I change something, on the other, I would always have to recompile the library folder when I do the smallest changes to a component.
Could you give me your opinion in this?
Regards,
Ana G. Pino

Thanks for answering.
I have been trying to look for the  best set up and I am not a fan of RSLs either. Do you have a recommendation of another way that I could set this up? Could you tell me your reasons for not liking RSL? And if you have worked with them any advice on how to approach them?
I know... too many questions, but I am really lost.
Thanks in advance.
Regards,
Ana

Similar Messages

  • 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 use J2EE shared library in a team environment? Any help?

    Hi all,
    I've created two portal web projects one as a shared library to share my portal resources (a saparate project
    containging all the portlets) rather than the portal project that containing the other portal resources (portal look &
    feel & ...).
    I've followed the steps to create a J2EE shared library (for portlets for example) by modifying META-INF/MANIFEST.MF file with the following variables added to it:
    Extension-Name: MyPortalWebProject (as a shared library)
    Specification-Version: 1.0
    Implementation-Version: 1.0
    and exporting the WAR file from the project that contains my portlets to be imported into the other portal project.
    I can see the portlets available from the portal project but I can't use them as I get the following
    error:
    No such portlet with URI (Portlet Name).
    Did I miss any steps to be able to use the portlets from the shared library into another portal project?
    If anyone has another scenario for how to separate all portlets in a separate project and share this with the main
    portal project, please advice.
    Many Thanks in advance.
    Mohamed

    Hello, did you attempted to use by Stream Portal?

  • Using a shared library compiled in Linux (.so) on a windows platform

    Hi,
    Can I interface a shared library compiled in Linux (.so) in LabView on a windows platform?
    Gabriel Y

    No.
    Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
    If you don't hate time zones, you're not a real programmer.
    "You are what you don't automate"
    Inplaceness is synonymous with insidiousness

  • How to find out who is using the shared library?

    Is there a way to find out who is listening to my music on my shared library and what they are listening to?

    After googling a lot I managed to run my application with libumem, generated a core file and succeeded to find some leak with mdb even if ::findleak reported nothing.
    Does anyone knows if the ::findleak (you need libumem and mdb) is supposed to find leak in the native part of the memory and a Java application using the JNI interface?
    Regards,
    Stéphan

  • HT1386 syncing using home shared library.

    I was trying to sync from my home shared library on a secondary laptop to an iPod and it would change the name of the file of some songs but not all.  Then I tried it from the primary PC where the songs are located and it did the same thing.  How do I stop it from doing this?  Thanks.

    Hello jmcole1,
    Welcome to the Apple Support Communities!
    I understand that some of your TV Shows are not showing on your iOS devices after updating to the latest iOS version. I also understand that you have performed some great troubleshooting steps already. In this situation, just to make sure all suggested troubleshooting steps for this situation have been completed, I would suggest working through the information in the attached article. 
    Troubleshooting Home Sharing - Apple Support
    Have a great day,
    Joe

  • Should I use a second library / catalog for clip art photos

    Hi!
    I've used LR for several years for my personal photos - editing & tagging & sorting etc. I've only ever used the one catalogue - hence putting this in the beginners forum.
    I also have on my laptop a range of stock photos and clipart.  This is beginning to increase as I do more on blogs/websites etc. and I need to manage it - and be able to find what I need.  I have considered getting picasa, as I didn't want to mess up my personal lightroom catalogues and have millions of unrelated tags, but then I thought about starting a second catalogue specifically for stock pictures. 
    But I would like to ask some more experienced users their opinions.  Is lightroom viable for cataloguing stock photos (I may do some editing of them, though the primary purpose would be tagging)?  If I start a second catalogue will the tags be completely separate and not impinge on my own photos?  Or there any pros/cons I need to consider?  Would picasa or some other tagging software be better suited (I had heard that picasa also tagged things like colour automatically)?  If I keep all of the stock photos on an external hdd will that impact on my decision making process?
    Many thanks for your time!

    I use two catalogs but one is only used when on the road. I will add metadata to photos but I never do any development work on the laptop catalog. As soon as I am back home, the first thing I do is export the working catalog on the laptop and import it into my primary catalog on my Mac Pro. The second catalog is only a temporary thing. I had tried maintaining two catalogs at one time using one for my working catalog and a second for my archives but that also became unworkable since I always had to search them both to find what I was looking for. LR only allows one catalog to be open at any point in time so switching back and forth became more than just a little annoying. Now I work out of the one catalog which contains both the working files as well as the archives and the catalog on my laptop is only live when I travel and even that only if I plan to be gone for more than a few days. For your situation I would toss my vote on the side of a single catalog as well. The metadata is a great way to distinguish images coming from other sources making it easy to locate them or distinguish between one of your own images from a stock image. If you want a more visual way, you could use one of the color labels as well. Add the label and then set your preferences to shade the background with the color and you can tell instantly in Grid mode which images are stock by the background color of the cell (I tend to be visual in my thinking). I would still add a keyword such as "stock" or "stock image" though.

  • Segfault when using shared library

    Hi,
    I have a little problem. I'm using a shared library in my program. It works fine under windows, but when I run my program under linux or solaris I get a segfault.
    When using the same library from a C/C++ program under soloris or linux I have no problem.
    Does someone have an idea ??
    Thanks.
    Vincent

    This is Java related ?
    Windows may not be as strict about memory pointers....
    Try running something like "BoundsChecker" against a debug version of your code.
    Years ago I used to use that, to detect pointer problems.
    You may be trying to access the contents of NULL in C/C++, or trying to read from a memory location
    which is no longer valid... eg. freed memory, or you return a pointer to a local variable to a calling routine.
    That stack space would be destroyed when the function returns, so you'd be trying to access memory
    that is no longer "valid".
    regards,
    Owen

  • IPhoto, iWeb & shared library

    Hi,
    Is it possible to have a (home) network with a multi & full accessed read/write iPhoto library?
    I've an old PowerPC MacMini primarily used (like a NAS) as a central storage device. It contains my music, photo libraries etc which are further stored on a connected Iomega 300G Hard Disk. My photo library runs under iPhoto 5.0.4.
    My other (and primary) machine is my laptop, MacBook Pro, where I want to do all my work - such as publishing photos, maintaining web-site. I don't want to store my music/photos on any of my laptops, I want them centralised.
    The first problem I have is that I cannot export to iWeb on my MBP when I use my shared library (with iPhoto 6.0.6). The option is greyed out - presumably standard for shared libraries.
    The second problem is that I will get another laptop soon (MacBook) and would like to be able to add photos to my library from any of my Macs. I don't want to have to unplug my Iomega hard disk and attach it to whatever Mac I am using.
    Is it possible to overcome these limitations?
    I tried sharing my MacMini and changing my MBP iPhoto library to the mount point - but using afp the external 'Volumes' are not shown. So I tried using Samba - but it doesn't always show up, doesn't auto-mount, and iPhoto on the MBP complained that it didn't have write-access.
    In the Mac world, there must be an easier way?
    TIA

    If I understand correctly, you have two computers. One of them has an external hard drive connected to it and you want to know how to make that available to another computer, correct?
    If this is the scenario, for ease of reference, let's name the computers. We'll call the computer with the external hard drive Scrooge. The one that wants access to the hard drive we'll call Cratchet. One way to give Cratchet access to Scrooge's hard drive is through firewire. Assuming that both have an available firewire port, you can do the following:
    (This process may not be perfect, since I am not set up to test it at the moment, but...)
    1. Plug them in through firewire (both hot)--do NOT put one in transfer mode.
    2. On Scrooge, go to the sharing portion of the system preferences and activate:
    a. personal filesharing
    b. remote login
    3. On Cratchet, go to the network portion of the system preferences and:
    a. Select "Built-in FileWire" from the "Show" pull-down menu.
    b. Under the TCP/IP setting, select "Using DHCP"
    c. Push the button "Configure IPv6.."
    Unless I am mistaken, this should prepare Cratchet to see Scrooge.
    4. Now Cratchet should be able to connect to Scrooge using the "Connect to server" command in the Finder menus as normal. When you do connect, you will have to log on. When it prompts you for what disk to mount, simply select the hard drive that you want to work on.
    5. Once you have mounted the desired hard drive, you can save yourself time in the future by ctrl-clicking the hard drive's icon on the desktop and making an alias of it. Then in the future, you can (after plugging-in the firewire) double click on this alias and enter your password to access it.
    PS: If desired, you can also tell Scrooge to share his internet connection with the firewire connected computer (if relevant) in his network preferences--kind of cool, huh?
    I hope this helps.

  • Shared Library vs. Mounting network computer where music resides

    My music all resides on a networked desktop in an office in my house. I always use the "Shared Library" feature to choose & play music from a laptop in my living room (to my main stereo with AirTunes). But there are some downsides. You can't create a playlist. You don't have access to all info, lyrics (where I store notes), for example. Artwork doesn't show in the lower left graphic box.
    Last night I mounted the other computer drive to my laptop and and chose that Library at startup. I had much more hands on access to the music. But after rewaking sleep, the Finder froze as it tried to reconnect.
    Does anyone have thoughts about the better of two methods to control all the music from a networked computer?

    See my post Make a split library portable for some background info.
    Uness you have good reasons for doing otherwise the "libary" folder should be called iTunes and unless it is in the User's Music folder it might as well be at the root of the drive. The "media" folder should be called iTunes Media and should be inside iTunes. This layout keeps everything self-contained and portable, easy to move, easy to back up.
    Only one instance of iTunes can open the main database file iTunes Library.itl at any one time. Other copies of iTunes share access to the library using the Shared Library or Home Sharing features. Alternatively you can put parallel .itl files in the library folder, but if you do that you need to make sure none of the libraries try to "Keep organized" or an edit in one library can break things for another. Each user needs to be disciplined about deleteing content too.
    tt2

  • How to build a shared library (dll) of a VI to be called by VC++

    hi All,
    How should I build a shared library ( dll ) using LabVIEW so that the desired output from LabVIEW can be returned to the main program that runs in VC++ ?
    I'm currently working in a project that uses the PXI 1042 & DMM, AWG, FGEN, SCOPE, RFSG, RFSA etc.
    The VC++ programmers dont want the LabVIEW front-end to be visible when called into VC++, in the sense they don't want LV to be another front-end, as the entire software is designed using VC++. It is enough if I simply pass the final values of measurement to them for display purpose.
    So, they've asked me if it is possible in LabVIEW to provide the VIs as dlls instead of exes.
    Since I've seen the feasibility of building a EXE or a DLL in LV, I've replied positively to them.
    In another of my project, I'm using dlls built in VC++ for hardware drive interaction parts in my LabVIEW project.
    Likewise, what are the methodologies that I should follow when building a Dll in LV ?
    I tried with a simple VI, wherein it returns a value of addtion of 2 elements & I passed it thro' the connector pane correctly.
    When I called the same dll in LV itself & configured it correctly by specifying the correct return type & I/O, then also it did not run properly.
    I could not understand what was going.
    So experts pls help me out by some simple examples or related links.
    Regards & Thanks,
    Partha.
    - Partha
    LabVIEW - Wires that catch bugs!

    Here you can find Application Notes and examples:
    http://zone.ni.com/devzone/devzone.nsf/webcategories/98D192CDCCDA21EE86256AB7006BECAF
    Hope this helps!

  • Coherence Extend shared library is quite large

    Hello all,
    I'm starting to play around with Coherence Extend (for C++), and I've noticed that the .so provided is 67 megabytes. Even when I strip it, it only goes down to 57 MB. I'm wondering if there is a way to trim this down. Is there a list of features that I can pick and choose from that would allow for a slimmer distro? Additionally, I'm wondering if there's a static library that can be used instead of the shared one, so I can compile it directly into my other binaries (instead of a dynamic link).
    The reason I'd like a smaller library is that we're going to be trying Coherence from a CGI, and a small memory footprint is essential when the whole process only lives for 200 milliseconds on a busy box.
    Anyway, any tips would be appreciated.
    Thanks,
    Anthony
    Edited by: 952088 on Aug 10, 2012 8:39 AM - specified language

    Hi Anthony,
    You may want to measure the time it takes to load the Coherence library versus the size of the .so. It's not likely that the entire shared library will need to be loaded into memory. Only the parts that are needed for whatever your program is doing. And on most OS's, when multiple processes are using the same shared library, just one copy of the shared library will be loaded into memory and then will be shared by all of the processes.
    Using a shared library or static library should have no impact loading time or memory used as your program is loading the same "stuff" either way.
    Hope this helps,
    Patrick

  • Can you sync from a shared library

    we have multiple ipod, ipad, iphone devices and multiple imac computers but only one itunes account.  kids are not old enough to have their own account.  can i sync their ipad to their mac if it is using a shared library from my imac or do i need to have all the data on their mac?
    are there other suggestions you can provide on how to manage mutiple idevices and imacs with only one itunes account.
    Thanks

    Welcome to the Apple Community Katie.
    You can import content via homesharing to a library on a computer but not to a mobile device.

  • Linux shared library does not work in fedora core 4

    I have transferred an application that ran perfectly on fedora 3 to fedora 4.  It uses a shared library that I wrote in C.
    The vis no longer appear to recognise this file as a  shared
    library.  I have recompiied the library in fedora 4 but this makes
    no difference.
    Any ideas?

    Hi jbroughton,
    There are few things that I need to know in order to investigate why your file is no longer being recognised:
    What version of LabVIEW are you using?
    What is your kernal version of federa four?
    Is your application a built executable?
    What is your librarying doing currently when you try to call it? If any error popups what are the error codes and messages you are getting?
    Can you call your C library outside of LabVIEW?
    Thanks
    Emma R
    NIUK & Ireland

  • How do I copy objects from a flash shared library?

    I'm a total beginner at Flash and I've been given the task of creating a new version of a flash component we use in house. The current version uses a shared library of objects in a separate .swf file.
    One of my tasks is to copy the items from the shared library into this new version so only the one .swf file is needed for everything to work. I've figured out how to unlink items in the new version from the shared library but that doesn't seem to copy them into the new version. can someone tell me how to do the copying bit please? I'm using Flash CS3.

    Drag it to the computer’s internal drive and then to the library in the open iTunes application window.
    (114990)

Maybe you are looking for