This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Linking two different libraries.

Note: This was originally posted on 16th February 2010 at http://forums.arm.com

[font="Verdana"]
[size=2]
Hi,

How do I link two different libraries each of which have been generated by two different Compiler set? The first one's generated by using ADS 1.2 while the second one's generated by using RVDS 2.2. For linking, I need to use the RVDS 2.2 linker. Also, will I need to make any changes in other files such as the Scatter Load file (.scl) or Map file (.map) for generating the ELF as a result of linking this two separate libraries?

If somebody could also provide me the command-line options to be given to the linker for this purpose, that would be of help too.

If the above details are falling short for you to be able to answer this question, please do let me know the specifics that you need. I'll try to provide them at the earliest.

-Pritam.
[/size]
[/font]
Parents
  • Note: This was originally posted on 3rd March 2010 at http://forums.arm.com

    [font="Arial"]
    Hi,

    Now, when I try to run the linker to link the two libraries I get the following error message -
    [i]Warning: L6637W: No input objects specified. At least one input object or library(object) must be specified.
    [...]
    [/font]


    What command line are using?  It looks like you tried to use armlink as if you were doing a final link.

    A library is usually an archive file (.l, .b, .a or .lib) that has multiple object files (.o), called the "members", packed into it by armar (or just ar).  When armlink sees an archive file on it's command link it will usually use only the members that are needed to satisify a missed symbol definition.  If you give armlink just two archives there will be no missing symbol references and no members will be selected and you'll get the message above.

    If you have two libraries, foo.lib and bar.lib, and you are trying to make one new library out of them then you probably want to extract all the members and make a new library; something like this:
    mkdir newlib
    cd newlib
    armar -x .../foo.lib
    armar -x .../bar.lib
    armar -cr new.lib *.o
Reply
  • Note: This was originally posted on 3rd March 2010 at http://forums.arm.com

    [font="Arial"]
    Hi,

    Now, when I try to run the linker to link the two libraries I get the following error message -
    [i]Warning: L6637W: No input objects specified. At least one input object or library(object) must be specified.
    [...]
    [/font]


    What command line are using?  It looks like you tried to use armlink as if you were doing a final link.

    A library is usually an archive file (.l, .b, .a or .lib) that has multiple object files (.o), called the "members", packed into it by armar (or just ar).  When armlink sees an archive file on it's command link it will usually use only the members that are needed to satisify a missed symbol definition.  If you give armlink just two archives there will be no missing symbol references and no members will be selected and you'll get the message above.

    If you have two libraries, foo.lib and bar.lib, and you are trying to make one new library out of them then you probably want to extract all the members and make a new library; something like this:
    mkdir newlib
    cd newlib
    armar -x .../foo.lib
    armar -x .../bar.lib
    armar -cr new.lib *.o
Children
No data