<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Linking error E2597</title><link>https://sourceforge.net/p/multimandel/wiki/Linking%2520error%2520E2597/</link><description>Recent changes to Linking error E2597</description><atom:link href="https://sourceforge.net/p/multimandel/wiki/Linking%20error%20E2597/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 30 Oct 2013 17:31:51 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/multimandel/wiki/Linking%20error%20E2597/feed" rel="self" type="application/rss+xml"/><item><title>Linking error E2597 modified by Arnold Reinders</title><link>https://sourceforge.net/p/multimandel/wiki/Linking%2520error%2520E2597/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -16,6 +16,6 @@
       not this                          but this
       TMandel_View = class (TObject)    TMandel_View = class (TObject)
          FStop_Watch: TStopWatch;       private // all is ok except published
-                                         FStop_Watch: TStopWatch; 
+                                           FStop_Watch: TStopWatch;

 [Back](https://sourceforge.net/p/multimandel/wiki/Mission%20statement/)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Arnold Reinders</dc:creator><pubDate>Wed, 30 Oct 2013 17:31:51 -0000</pubDate><guid>https://sourceforge.netc90f4406ca3e5047918959c340c64a503e04d1f0</guid></item><item><title>Linking error E2597 modified by Arnold Reinders</title><link>https://sourceforge.net/p/multimandel/wiki/Linking%2520error%2520E2597/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -7,23 +7,15 @@

 1. Remove all object files. These can be found in \Android\Debug (or release). Remove all files, except directories. Usually this works.

-2. Inspect very carefully your function definitions and calls and make sure you use the exact types. In one case the error disappeared 
+2. Inspect very carefully your function definitions and calls and make sure you use the exact types. In one case the error seems to be caused because the header contained and `integer` while the function was called with a `uInt32`.

-3. Have the compiler emitting RTTI information. Go to Project | Compiling | Emit runtime type information. When you get lots of the following errors:
+3. Have the compiler emitting RTTI information. Go to Project | Compiling | Emit runtime type information. When you get lots of E2217 compiler errors make sure that your class does not use `published` as an access specifier for that field but use another one like private, protected or public.

-    [dcc32 Error] Mandel_View.pas(36): E2217 Published field 'FStop_Watch' not a class or interface type
+-

-That happened in a class declared as follows:
-
-    TMandel_View = class (TObject)
-       FStop_Watch: TStopWatch;
-
-This time the Embaracdero help *was* helpful and I learned that I had probably omitted a private statement. Changing the code to
-
-    TMandel_View = class (TObject)
-    private // all is ok except published
-       FStop_Watch: TStopWatch;
-
-helped. No more compiler errors and code that compiled without problems to Android.
+      not this                          but this
+      TMandel_View = class (TObject)    TMandel_View = class (TObject)
+         FStop_Watch: TStopWatch;       private // all is ok except published
+                                         FStop_Watch: TStopWatch; 

 [Back](https://sourceforge.net/p/multimandel/wiki/Mission%20statement/)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Arnold Reinders</dc:creator><pubDate>Wed, 30 Oct 2013 17:31:24 -0000</pubDate><guid>https://sourceforge.netc82bf7496f9afe2da7ea26bcfe301bf51e521713</guid></item><item><title>Linking error E2597 modified by Arnold Reinders</title><link>https://sourceforge.net/p/multimandel/wiki/Linking%2520error%2520E2597/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -3,7 +3,13 @@

 This is a most baffling error as it occurs during linking code for the Android target which ran flawlessly for the Win32 target. What happens is that the Android linker reports that some symbols were not found in the C++ code which was compiled from object Pascal. The code is clearly present in the Pascal code. Commenting out the code leads to another error in another part of the code. The linker is clearly bent upon your destruction. Or so it seems. The [Embarcadero](http://docwiki.embarcadero.com/RADStudio/XE4/en/E2597_%27%25s%27_%28Delphi%29) help is not the most useful in the world.

-Sometimes the error disappears after some tweaking in order to reappear after some other twiddling. I reasoned that this was probably due to a compiler/linker setting by emitting too few information to the linker. That saved my ink-black temper. Go to Project | Compiling | Emit runtime type information. I switched it on and lots of the following errors:
+There are several ways to get out of this situation.
+
+1. Remove all object files. These can be found in \Android\Debug (or release). Remove all files, except directories. Usually this works.
+
+2. Inspect very carefully your function definitions and calls and make sure you use the exact types. In one case the error disappeared 
+
+3. Have the compiler emitting RTTI information. Go to Project | Compiling | Emit runtime type information. When you get lots of the following errors:

     [dcc32 Error] Mandel_View.pas(36): E2217 Published field 'FStop_Watch' not a class or interface type

@@ -15,9 +21,9 @@
 This time the Embaracdero help *was* helpful and I learned that I had probably omitted a private statement. Changing the code to

     TMandel_View = class (TObject)
-    private
+    private // all is ok except published
        FStop_Watch: TStopWatch;

-was very helpful indeed. No more compiler errors and code that compiled without problems to Android.
+helped. No more compiler errors and code that compiled without problems to Android.

 [Back](https://sourceforge.net/p/multimandel/wiki/Mission%20statement/)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Arnold Reinders</dc:creator><pubDate>Wed, 30 Oct 2013 17:17:49 -0000</pubDate><guid>https://sourceforge.net8c61dca8ec1d042fd2ead637e4e0c8d61849336c</guid></item><item><title>Linking error E2597 modified by Arnold Reinders</title><link>https://sourceforge.net/p/multimandel/wiki/Linking%2520error%2520E2597/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,4 +1,5 @@
-###Linking error E2597###
+Linking error E2597
+----

 This is a most baffling error as it occurs during linking code for the Android target which ran flawlessly for the Win32 target. What happens is that the Android linker reports that some symbols were not found in the C++ code which was compiled from object Pascal. The code is clearly present in the Pascal code. Commenting out the code leads to another error in another part of the code. The linker is clearly bent upon your destruction. Or so it seems. The [Embarcadero](http://docwiki.embarcadero.com/RADStudio/XE4/en/E2597_%27%25s%27_%28Delphi%29) help is not the most useful in the world.

@@ -18,3 +19,5 @@
        FStop_Watch: TStopWatch;

 was very helpful indeed. No more compiler errors and code that compiled without problems to Android.
+
+[Back](https://sourceforge.net/p/multimandel/wiki/Mission%20statement/)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Arnold Reinders</dc:creator><pubDate>Wed, 23 Oct 2013 19:25:38 -0000</pubDate><guid>https://sourceforge.net990dd394be45b91a22c13197a7f62bd5742c2f93</guid></item><item><title>Linking error E2597 modified by Arnold Reinders</title><link>https://sourceforge.net/p/multimandel/wiki/Linking%2520error%2520E2597/</link><description>&lt;div class="markdown_content"&gt;&lt;h3 id="linking-error-e2597"&gt;Linking error E2597&lt;/h3&gt;
&lt;p&gt;This is a most baffling error as it occurs during linking code for the Android target which ran flawlessly for the Win32 target. What happens is that the Android linker reports that some symbols were not found in the C++ code which was compiled from object Pascal. The code is clearly present in the Pascal code. Commenting out the code leads to another error in another part of the code. The linker is clearly bent upon your destruction. Or so it seems. The &lt;a class="" href="http://docwiki.embarcadero.com/RADStudio/XE4/en/E2597_%27%25s%27_%28Delphi%29" rel="nofollow"&gt;Embarcadero&lt;/a&gt; help is not the most useful in the world.&lt;/p&gt;
&lt;p&gt;Sometimes the error disappears after some tweaking in order to reappear after some other twiddling. I reasoned that this was probably due to a compiler/linker setting by emitting too few information to the linker. That saved my ink-black temper. Go to Project | Compiling | Emit runtime type information. I switched it on and lots of the following errors:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dcc32&lt;/span&gt; &lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;Mandel_View&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pas&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;E2217&lt;/span&gt; &lt;span class="n"&gt;Published&lt;/span&gt; &lt;span class="n"&gt;field&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;FStop_Watch&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="n"&gt;or&lt;/span&gt; &lt;span class="n"&gt;interface&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That happened in a class declared as follows:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;TMandel_View&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TObject&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="nl"&gt;FStop_Watch:&lt;/span&gt; &lt;span class="n"&gt;TStopWatch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This time the Embaracdero help &lt;em&gt;was&lt;/em&gt; helpful and I learned that I had probably omitted a private statement. Changing the code to&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;TMandel_View&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TObject&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;private&lt;/span&gt;
   &lt;span class="nl"&gt;FStop_Watch:&lt;/span&gt; &lt;span class="n"&gt;TStopWatch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;was very helpful indeed. No more compiler errors and code that compiled without problems to Android.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Arnold Reinders</dc:creator><pubDate>Wed, 23 Oct 2013 19:21:35 -0000</pubDate><guid>https://sourceforge.net6943f3943362f246e600b4190015e3bec45c4af0</guid></item></channel></rss>