Shared library files

Hi,
Can you please tell me the differences between the following shared library files: .a, .so, and .sl
Till now, I have a program which is linking to a .a files of a specific software. Now in the newer version of the software, they removed the .a files and replaced with .so files. Now is the linking process same?
thanks in advance.

Hi,
.a files are static libraries and .so are shared object/libraries.
Shared libraries are the preferred way. Please see docs.sun.com -> linker and library guide. for example at following link: http://docs.sun.com/ab2/coll.45.13/LLM/@Ab2PageView/6367?Ab2Lang=C&Ab2Enc=iso-8859-1
I linking of the executable with the library should be same. But creation of library itself will be different.
Here is the excerpt from one of the FAQ:
<pre>Q. What is a shared library?
A. A shared library, or shared object file, or dynamic library, is a
file in the ELF file format (see elf(3E)) that contains data and usually
code that is needed by application binaries. It, along with any other
shared libraries an application binary depends on, is transparently
loaded into memory when the binary is executed, making itself available
to the binary.
Q. What are the advantages of shared libraries?
A. The major advantage of a shared library is that it may contain code that
more than one binary depends on. Thus, this code is only stored once,
in the shared library, and not in each individual binary. This saves
storage space on disk, especially when dealing with very common code
that nearly every program needs. But the benefits go farther than the
space savings: if the common code needs to be updated (for example, a
patch to fix a bug), this need only be done once, in the shared library.
(There are also more reasons, covered below).
Another big advantage is that programs which use the non shared versions
of the system supplied libraries like libc, are not supported and are
not ABI compliant. See "Why does my program, statically linked under a
different version of Solaris, dump core?" and "Why do I get unresolved
references when trying to link statically?"
Q. What are the disadvantages of shared libraries?
A. It takes time for a program to load all of the shared library files it
needs and to link them to the main program and to other shared libraries
(called dynamic linking). The program will take longer to start up.
Programs that depend on shared libraries will not work if any of the
libraries they depend upon are not available. For people who distribute
software, this often means developers must restrict themselves to using
only the shared libraries that are sure to be present on every system.
Unfortunately of course, nothing is for sure and according to Murphy's
law, there will always be someone who doesn't have whatever library,
or has a different version that the developers used and the different
version doesn't work properly. Arguably, it is cleaner (more elegant)
to have a program that is self contained and requires nothing but
itself.
Finally, the system must be able to locate the require libraries
wherever they may be, which is, again, error prone. (See "What
is LD_LIBRARY_PATH?")
</pre>
Thanks
Kalpesh

Similar Messages

  • 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

  • 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

  • ITunes 10.5 does not load shared library files

    Since today's update to iTunes 10.5 from 10.4.1. iTunes can no longer access the shared music library I have on my iomega NAS disk. It sees the disk and lists it as a shared library, but when I click on the library it goes into an endless loading cycle. In the past it might take a minute or so to load the library, but since the update, iTunes never actually does load it.
    There is no error message, not even an operation time-out. I can't see anything rrelevant in the console. It just goes on for ever trying to load the shared library.
    It was loading the shsred library just fine until this evening when the update downloaded.
    Any ideas?

    I'm having the same problem with a Buffalo Linkstation LS-WTGL/R1-V3 NAS and iTunes 10.5 on both Mac OS X 10.6.8 and Windows XP.
    It's not quite an endless loop, though. It takes about 20 seconds, then the song listing flashes briefly on the screen but goes immediately to the local Music listing in the Library. If I right-click on the NAS's entry and choose "Open in a New Window", the window opens, shows the barber pole throbber for about 20 seconds, then closes, again going back to the local Music listing.
    There's about 117GB in the iTunes Music folder on the NAS.
    This worked fine under iTunes 10.4.x.

  • Shared library files disappear!

    I networked my desktop and laptop to use my old music files to create a new library with a new ipod and new computer.... worked fine for couple of months, today all the files from the shared folder have ! exclamation point ! next to them and cannot be found... shared folder is still shared as far as i can tell.
    ALSO:
    When I download from itunes store it knocks out my wireless connection, not just for my laptop but for the wired computer, it completely shuts down the modem/router. i have to connect thru a random unsecured network to finish downloading, then unplug my cable modem and replug it and then it works again. Why is itunes knocking out my cable internet connection.
    Any ideas????
    Sony Vaio VGN-C190G   Windows ME  
    Sony Vaio VGN-C190G   Windows ME  
    Sony Vaio VGN-C190G   Windows ME  

    I networked my desktop and laptop to use my old music files to create a new library with a new ipod and new computer.... worked fine for couple of months, today all the files from the shared folder have ! exclamation point ! next to them and cannot be found... shared folder is still shared as far as i can tell.
    ALSO:
    When I download from itunes store it knocks out my wireless connection, not just for my laptop but for the wired computer, it completely shuts down the modem/router. i have to connect thru a random unsecured network to finish downloading, then unplug my cable modem and replug it and then it works again. Why is itunes knocking out my cable internet connection.
    Any ideas????
    Sony Vaio VGN-C190G   Windows ME  
    Sony Vaio VGN-C190G   Windows ME  
    Sony Vaio VGN-C190G   Windows ME  

  • Ocijdbc9.sl: specified file is not a shared library

    I'm attempting to run the JdbcCheckup program.
    Here is my configuration:
    JDBC driver version is 9.2.0.5.0
    I have CLASSPATH set to /d00/oracle/prod/v9.2.0/jdbc/lib/ojdbc14.jar
    I have LD_LIBRARY_PATH set to /d00/oracle/prod/v9.2.0/lib
    I have SHLIB_PATH set to /d00/oracle/prod/v9.2.0/lib
    We're on an UP-UX platform with Oracle9i Enterprise Edition Release 9.2.0.5.0
    All the google and forum searches suggest to check the path but they are set correctly as far as I can tell.
    Any suggestions?

    warman,
    Pardon me for stating the obvious, but are you certain that file "ocijdbc9.sl" is a shared library. Although I don't work with UP-UX (or should that be HP-UX?), on most UNIX/linux systems, shared library files have the ".so" extension in their names.
    Good Luck,
    Avi.

  • Shared Library Linking Question

    I'm building my first site using a shared library swf file.
    I'm wondering about what elements have to be linked for everything
    to work properly. For example:
    In my shared library swf, I've got a menu movie clip built.
    Within it, there is another movieclip with 6 buttons, a couple
    motion tweens, and a couple graphics inside. So, in my menu
    movieclip folder, there are about 12 different elements (buttons,
    graphics, a couple movie clips, etc.
    In any other swf file that uses the menu from the shared
    library, do I just need to link and bring over the main menu
    movieclip, or do I need to link every element and bring it over to
    any swf that uses the menu? Or, is there even a better way to do
    all of this? I've got at least 6 different swfs that will use this
    menu. I'd only use it once on the master.swf, but it's nestled
    within layers on the other seperate swfs for visual
    purposes.

    plaing the menu in every .swf file will increase the size of
    each file. the shared library file will be larger than it needs to
    be.
    Why not just make one .swf that only contains the just the
    menu. Then you could create a master file that loads the menu.swf
    at a high enough level that it is always on top. The other movies
    (webpages) could be loaded inbetween the master.swf, which you'd
    probably put on level 1, and the menu.swf. That way only the bare
    essentials would need to be stored in the shared library keeping
    its size as small as possible.
    (see Shane Rebenschied's book,
    Flash MX 2004: Beyond the Bsasics)

  • Myrio debugging shared library (so) with eclipse

    Hi,
    has anybody experience with debugging shared library files in eclipse?
    I have created a shared library file in eclipse and downloaded it on the myrio device into following location: \usr\lib. I´m able to access the file in Labview.....this wors great. But I want to debug this file in Eclipse like explained in the following NI tutorial: http://www.ni.com/tutorial/14690/en/
    But I'm not able to get it running. In the debug view of Eclipse I get 2 Errors. In the Disassembly window: "Cannot access memory at address 0x0" .
    And the other is:  "No source available for "" "
    Has anybody experience what I must do to get it running?
    Thank you very much!
    regards
    Holger

    Has nobody experience with this problem?
    I will explain a little bit more......
    I want to debug (with setting Breakpoints) a shared obefect file in Eclipse. For convenience I created a very simple C File:
    This is the dedicated project tree with the succesfully created so-file:
    I copied the created so-file to the MyRIO device with the remote system Explorer to the following location: \usr\local\lib
    Next I have make a power-cycle from the myRIO device. After that I can sucessfully include the .so file in Labview. This works all great to this point:
    But I want more.....I want debug the c-file in Eclipse and follow the NI tutorial: http://www.ni.com/tutorial/14690/en/
    I have set up the debugger like explained in the tutorial:
    But if I debug I get this window with several errors:
    Hope someone can help me to get it running!
    Many thanks!
    Holger

  • High resolution movie over shared library

    Hi,
    my iTunes music folder is on a network server and the library file on my iMac. Now I want to play a movie from the iMac over shared library on my Mac mini. The movie is a 100% quality ripped DVD in MP4 with 3 audio layers (DD 2.0, DD 5.1, DTS 5.1) and has a bitrate of 18 mbits/s. When I start the movie from the Mac mini it loads the movie on and on but don't start it.
    Is it just because of the 100 mbit local network, or is there any regulation from iTunes. In what video quality (I want the full audio quality) can I rip the DVD to play it over the network?

    plaing the menu in every .swf file will increase the size of
    each file. the shared library file will be larger than it needs to
    be.
    Why not just make one .swf that only contains the just the
    menu. Then you could create a master file that loads the menu.swf
    at a high enough level that it is always on top. The other movies
    (webpages) could be loaded inbetween the master.swf, which you'd
    probably put on level 1, and the menu.swf. That way only the bare
    essentials would need to be stored in the shared library keeping
    its size as small as possible.
    (see Shane Rebenschied's book,
    Flash MX 2004: Beyond the Bsasics)

  • Is there any way for additions made by one user of a shared library to be visible to the other user of the same library, without having to always "add file to library"?  This was the whole reason we consolidated the library into a public folder

    My wife and I share a computer but have separate Windows ID's.  We also each have an iTunes account, using two separate Apple ID's.  We have always struggled with the headache of getting music that one of us added (via purchase, downloading CD, etc.) to the other person's music library.  A friend suggested we consolidate and share the same library.  Sounded like a good idea so we moved the libraries to a public folder, consolidated them, etc.  But now when one of us adds music to the library, the other person still has to do an "add file/folder to library" in order for them to be able to see it.  This is exactly the step we were hoping to eliminate by this consolidation.  Does anyone know if there is a way to make this happen automatically, or will we have to continue to do this every time?
    Also, ended up with a lot of duplicates in the process of consolidating.  Is there any way to identify and "mass delete" these?  It will take a while to go through them all individually as the library is somewhat substantial (approx. 16k songs)
    Hardware is Windows 8, one iPod classic, one iPod Nano (obviously only selected playlists on this one).  All hardware and iTunes running latest software.
    Any information would be appreciated!

    It sounds like you are using two independent libraries with a common media folder, whereas the plan would have been to ensure that both profiles were using the same library library database. Although you can place this within the Public folder I would normally create a shared library at the root of a drive, e.g. at X:\iTunes where X: is the drive that you want to use. See Make a split library portable for information on moving the library around back into a standard shape.
    As for duplicates, Apple's official advice on duplicates is here... HT2905: How to find and remove duplicate items in your iTunes library. It is a manual process and the article fails to explain some of the potential pitfalls such as lost ratings and playlist membership.
    Use Shift > View > Show Exact Duplicate Items to display duplicates as this is normally a more useful selection. You need to manually select all but one of each group to remove. Sorting the list by Date Added may make it easier to select the appropriate tracks, however this works best when performed immediately after the dupes have been created.  If you have multiple entries in iTunes connected to the same file on the hard drive then don't send to the recycle bin.
    Use my DeDuper script if you're not sure, don't want to do it by hand, or want to preserve ratings, play counts and playlist membership. See thisthread for background, this post for detailed instructions, and please take note of the warning
    to backup your library before deduping.
    (If you don't see the menu bar press ALT to show it temporarily or CTRL+B to keep it displayed.)
    The most recent version of the script can tidy dead links as long as there is at least one live duplicate to merge stats and playlist membership to and should cope sensibly when the same file has been added via multiple paths.
    tt2

  • Sharing iTunes music AND library files between multiple users in Windows XP

    My wife and I share the main computer and both use iTunes, each of us with our own iPod. While Apple covers how to share your music directory itself (which I did when iTunes was first installed by making the music directory C:\music), it doesn't allow you to share the library files--so, for example, if you added a playlist in one account it doesn't sync with the other.
    Microsoft has an app called Sync Toy which allows you to keep any set of files/folders on a Windows box synchronized with another set. I use Sync Toy to run a scheduled task each day in the middle of the night to sync the files in the iTunes directory in our %homepath%\My Music folders with each other--the most recently updated one will be synchronized.
    Just thought I'd share this tidbit of info since I haven't seen it posted before and it's saved my wife and I a lot of time.
    Hope this helps someone out there.

    That is one way to do it. There is another way, which is only slightly more difficult, but which you might find more attractive.
    Basically, iTunes expects to find your library files in the "My Music/iTunes" folder. However, "My Music" is a special system folder, its location is defined by Windows.
    If you download TweakUI, you can use it to set where your My Music folder is. So, if you create a folder that both you and your wife can access, and then set both of your My Music folders to be that folder, then you will have a shared library. No syncronization needed, changes you make to one will happen to the other because you both have the same library files.
    Only downside to this is that you can't use Fast User Switching and thus have both people logged in and using iTunes at the same time, because while one of you has the library open, the other can't access it until you close it.
    It works fine.

  • [SOLVED] "cannot open shared object file" but library is installed

    I'm trying to run a digital logic simulation tool called "atanua" but I'm getting a missing library error:
    $ atanua
    /opt/atanua101120/atanua: error while loading shared libraries: libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory
    I tried re-installing both atanua (from AUR) and sdl_image (from repos) but the error remains.
    $ ldd /opt/atanua101120/atanua | grep sdl_image
    libSDL_image-1.2.so.0 => not found
    I can find the "missing" library though:
    $ locate libsdl_image
    /usr/lib/libSDL_image-1.2.so.0
    /usr/lib/libSDL_image-1.2.so.0.8.2
    /usr/lib/libSDL_image.a
    /usr/lib/libSDL_image.so
    And so can the loader:
    $ ldconfig -v | grep sdl_image
    libSDL_image-1.2.so.0 -> libSDL_image.so
    My initial thought is that the problem is a name mismatch between the program and the system, but I don't know the proper way to fix this.  Does anyone know what I should try next?
    Here's my system specs:
    $ uname -a
    Linux 3.0-ARCH #1 SMP PREEMPT Wed Oct 19 10:27:51 CEST 2011 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ AuthenticAMD GNU/Linux
    Thanks for your help.
    Last edited by spence (2011-10-30 20:22:07)

    You're right. Some how [multilib] got disabled in my pacman.conf so I didn't spot a 32-bit version of the library.  I uncommented the [multilib] lines, searched again, and found it.  Problem solved.  Thank you.

  • How to get Reference on files of my ADF Shared Library

    Dear All,
    Use case:
    I have compiled one project into a shared ADF library. This project has a ViewController.
    In it are some common css files that I would like to reuse.
    Now, I have a new project and have linked to that ADF library using Resource Palette.
    In my JSFF file, I tried to link to the CSS in my shared library
    <af:resource type="css" source="/com/test/common.css"/>But I cant seem to get the styleclasses in that shared library.
    I have checked at Firebug console and I notice that I am getting a 404 when I am requesting for the said file.
    What should be the correct path for me to get a reference to the CSS Files?
    Thanks
    JDEV 11G PS3

    Duplicate of How to get Reference on files of my ADF Shared Library
    Edited by: Bijesh Krishnadas on Aug 17, 2011 9:13 PM

  • Shared library: function is not found and recognized in header file

    Hello,
    I am trying to use Java methods into LV. I am doing so by creating Java Invocation Interface, usind which I can call Java methods into C++ and then create a shared library that can be called into LV.
    When I am importing my shared library into Labview, I am getting the following error messages:
    The shared library contains 3 function(s). But no function is found and recognized in the header file. The following function(s) cannot be wrapped. If you want to import these functions, please review the warning messages next to the functions below. You will need to fix the problems before you can continue with the wizard.
    jclass invokeJavaClass(JNIEnv* jenv, string className);
    The following symbols are not defined:
    jclass;
    Undefined symbols can prevent the wizard from recognizing functions and parameters. To correct this problem, check the header file to determine if you must add preprocessor definitions. Click the Back button to return to the previous page of the wizard to add a preprocessor definitionsl (for example, "NIAPI_stdcall = __stdcall" or "NIAPIDefined = 1").
    The following header file was not found in the specified header file or one of the referenced header files:
    -  string
    -  iostream
    -  cstring
    -  jni.h
    To fix, click the Back button to go to the previous page and add the header file path to the Include Paths list.
     Please advise.
    Regards,
    H
    Attachments:
    SharedLibError.png ‏51 KB

    Hello Vivek,
    The LabVIEW dll that I am trying to import does not include any third-party device..all my code is fully based on LabVIEW. Maybe this helps you to guess what is happening: once I've parsed the dll' header appears an error
    like this one:
    void
    __cdecl Zdmt(LVBoolean *stop, double P, char channelName[],
        TD1
    *errorIn, TD14 *FFTOptions, TD12 *Calibration, char FileName[],
    int32_t minRecordLength, TD26 *InstrumentHandler, LVRefNum
    sessionRefArray[],
        LVRefNum *queueIN, TD1 *errorOut, LVBoolean
    *averagingDone,
        HWAVES LastRecordFetched, TD24 *Impedance, TD17
    *ColeColeCluster,
        TD18 *FFTcluster, TD5
    *InstrumentHandleOutputCluster, LVRefNum *queueOut,
        int32_t
    *Acquired, TD6 *FreqTimeInfoCluster, double *averagesCompleted,
    int32_t len);
    The following symbols are not defined:
    LVBoolean;
    int32_t; LVRefNum;
    Undefined symbols can prevent the wizard
    from recognizing functions and parameters. To correct this problem,
    check the header file to determine if you must add predefined symbols.
    Click the Back button to return to the previous page of the wizard to
    add a preprocessor definitionsl (for example, "NIAPI_stdcall =
    __stdcall" or "NIAPIDefined = 1").
    The following header file was
    not found in the specified header file or one of the referenced header
    files:
    -  extcode.h
    To fix, click the Back button to go to the
    previous page and add the header file path to the Include Paths list.
    I have replaced the first line #include "extcode.h" of
    the dll header file for #include "C:\Program Files\National
    Instruments\LabVIEW 8.6\cintools\extcode.h" that is the full path where
    the header file is located. However, new libraries seems to be missed:
    -  stdint.h
    -  MacTypes.h
    As far as I know,  Mactypes.h contains basic mac os data types and it doesn't have any relation with stdint.h...
    I have created both of them and stored into the same folder as extcode.h, but then other libraries are missed!!!
    Do you know if it would be possible to create the .dll generating all the header files associated for its data structures???
    And if this is not factible, then what do you suggest me? because I hope to not having to create all the header files until it stops giving me an error!
    thanks for four time,
    ben

  • Problem importing videos into file-shared library

    There appears to be a bug in iPhoto for importing videos in the case where a library is opened via file sharing.
    I've posted a bug report with Apple but it might help others to know about this. If I'm mistaken feel free to explain, that would be helpful too.
    I have an iPhoto library on a Mac Mini server at home. I often open the iPhoto library on the mini via file sharing from my laptop to edit it.
    I can drag and drop photos from my Sony DSC-H55 memory card plugged into my laptop onto iPhoto and they import fine into the file-shared library.
    If I do the same with videos I get an error message that they are an unsupported file type.
    If I copy the videos to the mini, and open iPhoto locally on the mini, they import fine.
    In every other way, working with this iPhoto library via file sharing has been flawless, so this looks like a bug.

    Interesting, thanks for the warning, Terence. I guess I assumed error correction would deal with that scenario, but I suppose there are insidious errors that could slip through and result in a mangled library. I do regular backups but still, I might lose that one special priceless photo!
    It's easy enough to use screen sharing to operate iPhoto on the mini over wireless. I can transfer files first and then import that way. That would avoid this bug too.
    Would you say this applies to other aspects of file sharing too? In other words, should we simply never edit a crucial file on a remote machine connected by wireless?
    Where I work we often use SVN over wireless. I wonder if we could damage something while updating the repository.

Maybe you are looking for