<?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[[gelöst] Linux SO-Module undefined symbol - wie debuggen?]]></title><description><![CDATA[<p>ich bin dabei ein Modul (<a href="http://scite-gui.googlecode.com" rel="nofollow">http://scite-gui.googlecode.com</a>) zu schreiben, funktioniert auch teilweise.<br />
eine Komponente (Pagecontrol) funktioniert, somit weis ich, dass die GtkControl-Klasse funktioniert.</p>
<p>fehler kommt jetzt bei der Listview-Klasse, und ich finde den Fehler einfach nicht.</p>
<p>Fehlermeldung:<br />
/home/frank/gui.so: undefined symbol: _ZN9CListViewC2EP10_GtkWidget</p>
<p>ich vermute mal, dass sich diese auf den Constructor bezieht, welcher so aussieht</p>
<pre><code class="language-cpp">CListView(GtkWidget *parent/*,int cols=1*/);
</code></pre>
<p>dieser ist auch in der zugehörigen cxx-datei vorhanden:</p>
<pre><code class="language-cpp">CListView::CListView(GtkWidget *parent/*,int cols*/)
</code></pre>
<p>ich habe Listview.* genauso aufgebaut wie PageControl.*, daher verstehe ich nicht, warum es nicht funktioniert (keine compiler-/Linkerfehler)<br />
hier mal der komplette code:<br />
<a href="http://dl.dropbox.com/u/3228629/scite-gui.zip" rel="nofollow">http://dl.dropbox.com/u/3228629/scite-gui.zip</a></p>
<p>die Splitter.* und Buttons.* können ignoriert werden, dass sind zukünftige Module, welche noch nicht mit eingebunden sind</p>
<p>ich hoffe, mir kann jemand einen Rat geben, wie ich dem Fehler auf die Schliche kommen kann</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274040/gelöst-linux-so-module-undefined-symbol-wie-debuggen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 08:45:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274040.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Sep 2010 09:33:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Thu, 30 Sep 2010 15:14:51 GMT]]></title><description><![CDATA[<p>ich bin dabei ein Modul (<a href="http://scite-gui.googlecode.com" rel="nofollow">http://scite-gui.googlecode.com</a>) zu schreiben, funktioniert auch teilweise.<br />
eine Komponente (Pagecontrol) funktioniert, somit weis ich, dass die GtkControl-Klasse funktioniert.</p>
<p>fehler kommt jetzt bei der Listview-Klasse, und ich finde den Fehler einfach nicht.</p>
<p>Fehlermeldung:<br />
/home/frank/gui.so: undefined symbol: _ZN9CListViewC2EP10_GtkWidget</p>
<p>ich vermute mal, dass sich diese auf den Constructor bezieht, welcher so aussieht</p>
<pre><code class="language-cpp">CListView(GtkWidget *parent/*,int cols=1*/);
</code></pre>
<p>dieser ist auch in der zugehörigen cxx-datei vorhanden:</p>
<pre><code class="language-cpp">CListView::CListView(GtkWidget *parent/*,int cols*/)
</code></pre>
<p>ich habe Listview.* genauso aufgebaut wie PageControl.*, daher verstehe ich nicht, warum es nicht funktioniert (keine compiler-/Linkerfehler)<br />
hier mal der komplette code:<br />
<a href="http://dl.dropbox.com/u/3228629/scite-gui.zip" rel="nofollow">http://dl.dropbox.com/u/3228629/scite-gui.zip</a></p>
<p>die Splitter.* und Buttons.* können ignoriert werden, dass sind zukünftige Module, welche noch nicht mit eingebunden sind</p>
<p>ich hoffe, mir kann jemand einen Rat geben, wie ich dem Fehler auf die Schliche kommen kann</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954072</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Thu, 30 Sep 2010 15:14:51 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Sat, 18 Sep 2010 10:19:07 GMT]]></title><description><![CDATA[<p><em>frank</em> schrieb:</p>
<blockquote>
<p>Fehlermeldung:<br />
/home/frank/gui.so: undefined symbol: _ZN9CListViewC2EP10_GtkWidget</p>
<p>ich vermute mal, dass sich diese auf den Constructor bezieht, welcher so aussieht</p>
<pre><code class="language-cpp">CListView(GtkWidget *parent/*,int cols=1*/);
</code></pre>
</blockquote>
<p>Nein, gesucht wird</p>
<pre><code class="language-cpp">CListView::CListView(_GtkWidget*)
</code></pre>
<p>Wie auch immer der &quot;_&quot; vor das GtkWidget kommt ...</p>
<p>Du kannst c++filt benutzen, um dir solche &quot;gemangelten&quot; Namen im Klartext anzeigen zu lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954082</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 18 Sep 2010 10:19:07 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Sat, 18 Sep 2010 10:44:33 GMT]]></title><description><![CDATA[<p>danke für die schnelle Antwort...habe bei c++filt folgendes gefunden:</p>
<blockquote>
<p>-_<br />
--strip-underscores<br />
On some systems, both the C and C++ compilers put an underscore in front of every name. For example, the C name foo gets the low-level name _foo. This option removes the initial underscore. Whether c++filt removes the underscore by default is target dependent.</p>
</blockquote>
<p>ich benutze Ubuntu und gcc4.4.1</p>
<p>ich finde im code nirgends einen verweis auf ein _GtkWidget</p>
<p>ansonsten werde ich mich heute abend mal mit g++filt auseinandersetzen, danke für den hinweis.<br />
das programm sagt auch CListView::CListView(_GtkWidget*) nur leider nicht, wo darauf zugegriffen wird</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954087</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Sat, 18 Sep 2010 10:44:33 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Sat, 18 Sep 2010 10:59:22 GMT]]></title><description><![CDATA[<p><em>frank</em> schrieb:</p>
<blockquote>
<p>danke für die schnelle Antwort...habe bei c++filt folgendes gefunden:</p>
<blockquote>
<p>-_<br />
--strip-underscores<br />
On some systems, both the C and C++ compilers put an underscore in front of every name. For example, the C name foo gets the low-level name _foo. This option removes the initial underscore. Whether c++filt removes the underscore by default is target dependent.</p>
</blockquote>
</blockquote>
<p>Ja, aber in gtkwidget.h wird die struct _GtkWidget deklariert. Die dürfte hier gemeint sein, der &quot;_&quot; wird dann nicht entfernt. Irgendwo wird diese struct in Gtk umbenannt (per typedef oder Makro), möglicherweise fehlt dir nur ein include des passenden Header.</p>
<p>Aber mit Gtk kenne ich mich nicht aus, mehr kann ich dazu nicht sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954094</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 18 Sep 2010 10:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Sat, 18 Sep 2010 11:25:42 GMT]]></title><description><![CDATA[<p>Wie gesagt, das pagecontrol funktioniert.<br />
Das nutzt vermutlich auch dieses struct.<br />
Von gtk musste ich bisher immer nur die gtk.h importieren.</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954102</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Sat, 18 Sep 2010 11:25:42 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Sun, 19 Sep 2010 06:40:27 GMT]]></title><description><![CDATA[<p>Fehler gefunden,<br />
ich habe die ListView.o nicht mit in das Modul gelinkt.</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954262</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Sun, 19 Sep 2010 06:40:27 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Wed, 29 Sep 2010 07:35:00 GMT]]></title><description><![CDATA[<p>kann man irgendwie auf der Kommandozeile prüfen, ob es unresolved symbols gibt? sonst werden die ja erst angezeigt, wenn das modul geladen wird.</p>
<p>evtl gibt es ja eine Möglichkeit das Modul direkt zu laden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958821</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Wed, 29 Sep 2010 07:35:00 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Wed, 29 Sep 2010 08:48:10 GMT]]></title><description><![CDATA[<p><em>frank</em> schrieb:</p>
<blockquote>
<p>kann man irgendwie auf der Kommandozeile prüfen, ob es unresolved symbols gibt? sonst werden die ja erst angezeigt, wenn das modul geladen wird.</p>
<p>evtl gibt es ja eine Möglichkeit das Modul direkt zu laden...</p>
</blockquote>
<p>ldd -r <a href="http://libfoo.so" rel="nofollow">libfoo.so</a> oder ldd -r programm<br />
zeigt die nicht auflösbaren Symbole an.</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958854</guid><dc:creator><![CDATA[msb]]></dc:creator><pubDate>Wed, 29 Sep 2010 08:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Wed, 29 Sep 2010 11:21:07 GMT]]></title><description><![CDATA[<p>mhm, da zeigt er natürlich auch die Symbole an, die in der Lua-Umgebung definiert werden...kann man da bestimmte ignorieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958906</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Wed, 29 Sep 2010 11:21:07 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Wed, 29 Sep 2010 12:05:58 GMT]]></title><description><![CDATA[<p><em>frank</em> schrieb:</p>
<blockquote>
<p>mhm, da zeigt er natürlich auch die Symbole an, die in der Lua-Umgebung definiert werden...kann man da bestimmte ignorieren?</p>
</blockquote>
<p>Hast du das ldd gegen die Lib oder gegen ein Binary ausgeführt?<br />
Im ersten Fall kannst du sie ignorieren oder deine Lib mit der liblua linken, damit sie verschwinden. Letzteres ist meine bevorzugte Lösung, weil du dann nicht jedes Programm, das deine Lib nutzt, explizit mit Lua linken musst.</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958936</guid><dc:creator><![CDATA[msb]]></dc:creator><pubDate>Wed, 29 Sep 2010 12:05:58 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Wed, 29 Sep 2010 13:02:00 GMT]]></title><description><![CDATA[<p>meine lib ist nur für ein programm, und das hat lua schon integriert.<br />
wenn dann würde ich höchstens nochmal gegen lua linken um den test mit ldd durchzuführen...</p>
<p>welche dateien von lua benötige ich dafür und wie sieht das linken direkt aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958992</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Wed, 29 Sep 2010 13:02:00 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Wed, 29 Sep 2010 13:18:14 GMT]]></title><description><![CDATA[<p><em>frank</em> schrieb:</p>
<blockquote>
<p>meine lib ist nur für ein programm, und das hat lua schon integriert.<br />
wenn dann würde ich höchstens nochmal gegen lua linken um den test mit ldd durchzuführen...</p>
<p>welche dateien von lua benötige ich dafür und wie sieht das linken direkt aus?</p>
</blockquote>
<p>In dem Fall würde ich die fehlenden Lua-Symbole in meiner Lib ignorieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Welche der lua-Libs du brauchst wenn du linken willst, hängt von den Symbolen ab, die fehlen. Auf alle Fälle die <a href="http://liblua.so" rel="nofollow">liblua.so</a> würde ich meinen.<br />
Gelinkt wird dann wie dein Programm auch (-llua). Hängt v.a. von deinem Build-System ab, wie's genau ausschaut.<br />
Nutzt du händisch verfasste Makefiles, automake und co, cmake oder ganz was anderes?</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1959008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1959008</guid><dc:creator><![CDATA[msb]]></dc:creator><pubDate>Wed, 29 Sep 2010 13:18:14 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Wed, 29 Sep 2010 13:27:29 GMT]]></title><description><![CDATA[<p>ich entwickel nur die lib, das programm ist von jemand anderes <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>mein Makefile für die lib:<br />
<a href="http://c-plusplus.net/forum/viewtopic-var-t-is-274563-and-highlight-is-.html" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-t-is-274563-and-highlight-is-.html</a></p>
<p>würde aber das linken außerhalb des makefiles verlagern, da ich das linken nur zum testen auf die unresolved symbols benötige und für die &quot;Auslieferung&quot; nicht benötigt wird. evtl. auch zusätzliches target im makefile</p>
<p>die <a href="http://liblia.so" rel="nofollow">liblia.so</a> muss ich bei mir mal suchen, denke nicht, dass die bei gcc dabei ist, oder? notfalls muss ich mir mal die kompletten lua-sources ziehen oder mal bei dem Programm schauen, ob die da irgendwo rumliegt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1959015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1959015</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Wed, 29 Sep 2010 13:27:29 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Linux SO-Module undefined symbol - wie debuggen? on Thu, 30 Sep 2010 15:13:58 GMT]]></title><description><![CDATA[<p>ich habs jetzt so hinbekommen:</p>
<pre><code>#if lua not found this is needed: 
# sudo ln -s /usr/lib/liblua5.1.so.0 /usr/lib/liblua5.1.so
debug.so: $(OBJS)
	$(LD) $(INC) -llua5.1 $(LD-FLAGS) $@ $(OBJS)&gt;/dev/null
	ldd -r $@ &gt;/dev/null
	$(RM) $@ &gt;/dev/null
</code></pre>
<p>und das makefile so aufrufen:</p>
<pre><code>make -s debug.so
</code></pre>
<p>danke an alle</p>
<p>Gruß Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1959624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1959624</guid><dc:creator><![CDATA[_frank_]]></dc:creator><pubDate>Thu, 30 Sep 2010 15:13:58 GMT</pubDate></item></channel></rss>