<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[solved] Symbol lookup error]]></title><description><![CDATA[<p>Der Code ist ein &quot;wenig&quot; complex, ich versuch später noch was minimales compilierbares zu stricken. Hier erstmal die verworrene Struktur (Inkludeguards/includes removed):</p>
<pre><code class="language-cpp">class Base { 
public:   
    Base() : irgendwas(5) {}

protected:
    int irgendwas;
};
</code></pre>
<pre><code class="language-cpp">class Abstruse : public Base { 
public:
    Abstruse() : Base(), wasAnderes(7) {}

    virtual void setWasAnderes() = 0;
    int getWasAnderes();

protected:     
    int wasAnderes;
};
</code></pre>
<pre><code class="language-cpp">class Spezi : public Abstruse {
public:
    Spezi() : Abstruse() {}
    void setWasAnderes() { /* spezifische Methode zur Datenaquise */  wasAnderes = 42; }
};
</code></pre>
<p>In einer seperaten pluginin-lib PlugIt nutze ich <code>Spezi</code> , in einer Methode greife ich über den geerbten <code>Abstruse::getWasAnderes()</code> zu und erhalte dabei ein <code>&quot;undefined symbol: _ZNK12ModalityBase16captureFrequencyEv&quot;</code></p>
<pre><code class="language-cpp">class Spezi;

class PlugIt
{
public:
    PlugiIt (Spezi * s) : spezi(s) {};

    void export();
private:
    Spezi * spezi;
};
</code></pre>
<pre><code class="language-cpp">#include &quot;base.h&quot;
#include &quot;abstruse.h&quot;
#include &quot;spezi.h&quot;
#include &lt;iostream&gt;

void PlugIt::export() { std::cout &lt;&lt; spezi-&gt;getWasAnderes(); }
</code></pre>
<p>nm liefert: <code>U _ZNK12ModalityBase16captureFrequencyEv</code> für den Zugriff also isst das wohl wirklich nicht da. Jemand eine Idee wie ich es da rein bekomme - muss ich beim linken der lib zusätzliche gegen die Objektdateien von <code>Base</code> und <code>Abstruse</code> linken oder krieg ich dann doppelt definierte Fehler?</p>
<p>Edith: Hab das ganze (Datenbankzugriff, Wrapping auf Klassen) jetzt librarisiert und die wo nötig includiert, jetzt tuts. Hätte ich vielleicht auch schneller drauf kommen können...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/276846/solved-symbol-lookup-error</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 06:06:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276846.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Nov 2010 10:53:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [solved] Symbol lookup error on Tue, 09 Nov 2010 12:49:52 GMT]]></title><description><![CDATA[<p>Der Code ist ein &quot;wenig&quot; complex, ich versuch später noch was minimales compilierbares zu stricken. Hier erstmal die verworrene Struktur (Inkludeguards/includes removed):</p>
<pre><code class="language-cpp">class Base { 
public:   
    Base() : irgendwas(5) {}

protected:
    int irgendwas;
};
</code></pre>
<pre><code class="language-cpp">class Abstruse : public Base { 
public:
    Abstruse() : Base(), wasAnderes(7) {}

    virtual void setWasAnderes() = 0;
    int getWasAnderes();

protected:     
    int wasAnderes;
};
</code></pre>
<pre><code class="language-cpp">class Spezi : public Abstruse {
public:
    Spezi() : Abstruse() {}
    void setWasAnderes() { /* spezifische Methode zur Datenaquise */  wasAnderes = 42; }
};
</code></pre>
<p>In einer seperaten pluginin-lib PlugIt nutze ich <code>Spezi</code> , in einer Methode greife ich über den geerbten <code>Abstruse::getWasAnderes()</code> zu und erhalte dabei ein <code>&quot;undefined symbol: _ZNK12ModalityBase16captureFrequencyEv&quot;</code></p>
<pre><code class="language-cpp">class Spezi;

class PlugIt
{
public:
    PlugiIt (Spezi * s) : spezi(s) {};

    void export();
private:
    Spezi * spezi;
};
</code></pre>
<pre><code class="language-cpp">#include &quot;base.h&quot;
#include &quot;abstruse.h&quot;
#include &quot;spezi.h&quot;
#include &lt;iostream&gt;

void PlugIt::export() { std::cout &lt;&lt; spezi-&gt;getWasAnderes(); }
</code></pre>
<p>nm liefert: <code>U _ZNK12ModalityBase16captureFrequencyEv</code> für den Zugriff also isst das wohl wirklich nicht da. Jemand eine Idee wie ich es da rein bekomme - muss ich beim linken der lib zusätzliche gegen die Objektdateien von <code>Base</code> und <code>Abstruse</code> linken oder krieg ich dann doppelt definierte Fehler?</p>
<p>Edith: Hab das ganze (Datenbankzugriff, Wrapping auf Klassen) jetzt librarisiert und die wo nötig includiert, jetzt tuts. Hätte ich vielleicht auch schneller drauf kommen können...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977700</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Tue, 09 Nov 2010 12:49:52 GMT</pubDate></item></channel></rss>