<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Unhelpful Linker error message: L6218E?</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/33019/unhelpful-linker-error-message-l6218e</link><description> 
Yes, I know about all the neophyte mistakes that cause the Linker
to fail to find a symbol and result in L6218E error messages. This is
not one of those cases. The error message (with non-essential parts
x&amp;#39;d out) is: 

 
.\_build\xxxxx_app.axf: Error</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Unhelpful Linker error message: L6218E?</title><link>https://community.arm.com/thread/107700?ContentTypeID=1</link><pubDate>Thu, 22 May 2014 00:41:00 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:26030bf9-9520-4f74-91a6-2b2e749ebf48</guid><dc:creator>Mike Wirth</dc:creator><description>&lt;p&gt;&lt;p&gt;
Whoops! The linker &lt;b&gt;did not&lt;/b&gt; have access to the right object
file. My error. I&amp;#39;m in the middle of switching between two versions
of the library and the compiler had access to the correct file, but
not the linker.&lt;/p&gt;

&lt;p&gt;
Guess I keep forgetting how &lt;i&gt;primitive&lt;/i&gt; C is and was
overthinking the problem. And it&amp;#39;s interesting that the C spec
doesn&amp;#39;t have much to say about the linking process. (At least my copy
of Harrison &amp;amp; Steele doesn&amp;#39;t)&lt;/p&gt;

&lt;p&gt;
Thanks for setting me right. Consider this thread closed.&lt;/p&gt;

&lt;p&gt;
Mike&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unhelpful Linker error message: L6218E?</title><link>https://community.arm.com/thread/81904?ContentTypeID=1</link><pubDate>Thu, 22 May 2014 00:07:10 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:4bb0f429-510e-48b4-9ec5-275bd09cb6b1</guid><dc:creator>Mike Wirth</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thanks for the quick reply:&lt;/p&gt;

&lt;pre&gt;
Signature? Casting parameters? Are you programming in C++?
Because C doesn&amp;#39;t use any name mangling for parameter types.
&lt;/pre&gt;

&lt;p&gt;
&lt;br /&gt;
I&amp;#39;m programming in C, not C++. Looks like I&amp;#39;m presuming too much from
C. Had presumed that the compiler was saving function argument and
return type info (no name mangling involved), and that the linker was
checking it.&lt;/p&gt;

&lt;pre&gt;
By the way - why did you not specify any architecture?...
&lt;/pre&gt;

&lt;p&gt;
&lt;br /&gt;
Because your web form does not give me a useful choice :-) I&amp;#39;m using
an ARM Cortex-M0 (in a Nordic nR51822, BTW) which isn&amp;#39;t listed in the
available choices. Guess I could have selected &amp;quot;ARM-7...&amp;quot;&lt;/p&gt;

&lt;pre&gt;
The header files are there for the compiler. They are irrelevant for the linker.
When it gets time to link, you need that symbol available in an object file or a library
that you have instructed the linker to care about.
&lt;/pre&gt;

&lt;p&gt;
&lt;br /&gt;
Yes, I know. But you do make a good point. I&amp;#39;ll go back and make sure
the linker has access to the correct object file.&lt;/p&gt;

&lt;p&gt;
Mike&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unhelpful Linker error message: L6218E?</title><link>https://community.arm.com/thread/68691?ContentTypeID=1</link><pubDate>Wed, 21 May 2014 23:06:48 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fe262a0e-16d9-48f3-a8e3-caf62f56166f</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
Signature? Casting parameters? Are you programming in C++? Because
C doesn&amp;#39;t use any name mangling for parameter types.&lt;/p&gt;

&lt;p&gt;
By the way - why did you not specify any architecture? Didn&amp;#39;t
realize that different architectures uses different linkers?&lt;/p&gt;

&lt;p&gt;
And another thing: You write &amp;quot;But that symbol is indeed available,
from a header file that is included in main.c, along with a bunch of
other symbols that are found.&amp;quot;&lt;/p&gt;

&lt;p&gt;
The header files are there for the compiler. They are irrelevant
for the linker. When it gets time to link, you need that symbol
available in an object file or a library that you have instructed the
linker to care about.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>