<?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[Linkerfehler beim Einbinden von Bibliothek]]></title><description><![CDATA[<p>Moin Leute,</p>
<p>folgendes ist mein Problem: ich habe die Bibliothek &quot;libxml2&quot; selber kompiliert (als .a, da unter Linux kompiliert) und in mein Projekt eingebunden. Wenn ich jetzt aber mein Projekt unter Windows baue, dann erhalte ich 1501(!) Fehlermeldungen vom Linker: unresolved external symbol.</p>
<p>Die unresolved external symbols sind aber definitif in der kompilierten Datei enthalten, das habe ich schon per Editor überprüft.</p>
<p>Ich kann mir das nur auf zwei Arten erklären: entweder ist die Biliothek nicht richtig eingebunden oder beim Cross-Compile ist etwas schiefgelaufen. Nur leider fehlen mir die Ideen bzw. das Wissen in der Richtung weiterzukommen, daher hoffe ich auf Unterstützung von euch....</p>
<p>Die Bibliothek habe ich über die Projekteigenschaften eingebunden (relative Pfadangabe, aber auch bei einem absoluten Pfade kommt das gleiche raus) und das Verzeichnis in dem die Header der Biblothek liegen, mit angegeben. Die Dateien liegen auch jeweils in den angegebenen Verzeichnissen.</p>
<p>Beim Kompilieren habe ich msys unter Windows 7 verwendet. Kann das sein daß das Linken fehlschlägt, weil ich unter Linux kompiliert habe aber die Biliothek unter Windows verwende? Eigentlich sollte das doch egal sein, solange die darunterliegende Architektur identisch ist...</p>
<p>Falls das hier nicht das richtige Forum ist bitte Verschieben, aber da es ein Linkerproblem ist und sowohl bei Linux als auch bei Windows hingepasst hätte habe ich das einfach mal hier gepostet.</p>
<p>edit: Ich vergaß zu erwähnen, der Linkerfehler ist in allen Fällen LNK2001.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270152/linkerfehler-beim-einbinden-von-bibliothek</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 12:51:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270152.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Jul 2010 12:11:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 12:22:29 GMT]]></title><description><![CDATA[<p>Moin Leute,</p>
<p>folgendes ist mein Problem: ich habe die Bibliothek &quot;libxml2&quot; selber kompiliert (als .a, da unter Linux kompiliert) und in mein Projekt eingebunden. Wenn ich jetzt aber mein Projekt unter Windows baue, dann erhalte ich 1501(!) Fehlermeldungen vom Linker: unresolved external symbol.</p>
<p>Die unresolved external symbols sind aber definitif in der kompilierten Datei enthalten, das habe ich schon per Editor überprüft.</p>
<p>Ich kann mir das nur auf zwei Arten erklären: entweder ist die Biliothek nicht richtig eingebunden oder beim Cross-Compile ist etwas schiefgelaufen. Nur leider fehlen mir die Ideen bzw. das Wissen in der Richtung weiterzukommen, daher hoffe ich auf Unterstützung von euch....</p>
<p>Die Bibliothek habe ich über die Projekteigenschaften eingebunden (relative Pfadangabe, aber auch bei einem absoluten Pfade kommt das gleiche raus) und das Verzeichnis in dem die Header der Biblothek liegen, mit angegeben. Die Dateien liegen auch jeweils in den angegebenen Verzeichnissen.</p>
<p>Beim Kompilieren habe ich msys unter Windows 7 verwendet. Kann das sein daß das Linken fehlschlägt, weil ich unter Linux kompiliert habe aber die Biliothek unter Windows verwende? Eigentlich sollte das doch egal sein, solange die darunterliegende Architektur identisch ist...</p>
<p>Falls das hier nicht das richtige Forum ist bitte Verschieben, aber da es ein Linkerproblem ist und sowohl bei Linux als auch bei Windows hingepasst hätte habe ich das einfach mal hier gepostet.</p>
<p>edit: Ich vergaß zu erwähnen, der Linkerfehler ist in allen Fällen LNK2001.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922686</guid><dc:creator><![CDATA[Hellcat]]></dc:creator><pubDate>Wed, 07 Jul 2010 12:22:29 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 12:33:34 GMT]]></title><description><![CDATA[<p>C++ hat keine standardisierte ABI. Das heißt du kannst Bibliotheken in der Regel nur nutzen, wenn Programm und Bibliothek mit dem selben Compiler erstellt wurden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922706</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Wed, 07 Jul 2010 12:33:34 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 12:42:24 GMT]]></title><description><![CDATA[<p>Hellcat schrieb:</p>
<blockquote>
<p>Kann das sein daß das Linken fehlschlägt, weil ich unter Linux kompiliert habe aber die Biliothek unter Windows verwende? Eigentlich sollte das doch egal sein, solange die darunterliegende Architektur identisch ist...</p>
</blockquote>
<p>Wie kommst du auf die Idee, dass das funktioniert?</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922708</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 07 Jul 2010 12:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 12:48:01 GMT]]></title><description><![CDATA[<p>Das habe ich schlecht formuliert - msys dient ja dazu Linux-Bibliotheken unter Windows kompilieren zu können, ist also quasi ein Linux-Emulator....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922711</guid><dc:creator><![CDATA[Hellcat]]></dc:creator><pubDate>Wed, 07 Jul 2010 12:48:01 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 12:58:51 GMT]]></title><description><![CDATA[<p>Hellcat schrieb:</p>
<blockquote>
<p>... ist also quasi ein Linux-Emulator....</p>
</blockquote>
<p>Nein, es stellt nur einige benötigte Werkzeuge (shell, make ...) zur Verfügung, um Bibliotheken auf Windows zu übersetzen. D.h. aber nicht, dass du eine auf Linux übersetzte Bibliothek auf auf Windows benutzten kannst.</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922718</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 07 Jul 2010 12:58:51 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 14:11:38 GMT]]></title><description><![CDATA[<p>Hellcat schrieb:</p>
<blockquote>
<p>...weil ich unter Linux kompiliert habe aber die Biliothek unter Windows verwende? Eigentlich sollte das doch egal sein, solange die darunterliegende Architektur identisch ist...</p>
</blockquote>
<p>Das Gemeine ist ja sogar:</p>
<p>ipsec schrieb:</p>
<blockquote>
<p>...wenn Programm und Bibliothek mit dem selben Compiler erstellt wurden.</p>
</blockquote>
<p>!!<br />
Es würde also nicht einmal dasselbe System reichen - schon unterschiedliche Compiler(-versionen) können das scheitern lassen.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922759</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 07 Jul 2010 14:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 14:25:37 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Auch wenn alle anderen Recht haben, funktioniert dies mit libxml2. Hab ich auch schon gemacht, aber du _musst_ dann auch den mingw in deinem Linux installieren und nicht den Standard g++.</p>
<p>Desweiteren musst du beim übersetzten auch die Zielplattform angeben. Dadurch bekommst du dann auch eine passende lib für Windows.</p>
<p>Aber natürlich solltest du schon schauen das die Compilerversionen nicht zu sehr unterscheiden. Ebenso ist es wichtig das beide 32 bzw. 64 Bit System sind!</p>
<p>Wobei ich seit dem umstieg auf 64Bit von libxml2 weg bin und jetzt tinyXML benutze. Ist einfacher und passte eher zu C++.</p>
<p>PS: Du bist im falschen Forum, solltest lieber ins Compiler Forum und dort gibt es auch schon entsprechende Threads mit dem Thema Crosscompile. (Einfach mal die Suche benutzen)</p>
<p>Mfg marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922767</guid><dc:creator><![CDATA[Marc-O]]></dc:creator><pubDate>Wed, 07 Jul 2010 14:25:37 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 14:54:05 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18177">@Marc-O</a>,<br />
libxml2 ist aber eine C Bibliothek. C hat im Gegensatz zu C++ ein standardisiertes ABI. Und wenn ich dich richtig verstanden habe, hast du unter Linux einfach einer Windows DLL kompiliert. Das geht natürlich auch, sofern der Kompiler dies unterstützt. Windows speichert DLLs und ausführbare Files im <a href="http://de.wikipedia.org/wiki/Portable_Executable" rel="nofollow">PE Format</a> während auf Linux meistens <a href="http://de.wikipedia.org/wiki/Executable_and_Linking_Format" rel="nofollow">ELF</a> zum Einsatz kommt.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922783</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 07 Jul 2010 14:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Wed, 07 Jul 2010 15:39:43 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Dravere schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18177">@Marc-O</a>,<br />
libxml2 ist aber eine C Bibliothek. C hat im Gegensatz zu C++ ein standardisiertes ABI. Und wenn ich dich richtig verstanden habe, hast du unter Linux einfach einer Windows DLL kompiliert. Das geht natürlich auch, sofern der Kompiler dies unterstützt. Windows speichert DLLs und ausführbare Files im <a href="http://de.wikipedia.org/wiki/Portable_Executable" rel="nofollow">PE Format</a> während auf Linux meistens <a href="http://de.wikipedia.org/wiki/Executable_and_Linking_Format" rel="nofollow">ELF</a> zum Einsatz kommt.</p>
<p>Grüssli</p>
</blockquote>
<p>Ja libxml2 ist eine C Bibliothek. Jein, es kamm eine Windows DLL heraus aber auch zusätzlich eine .a- sowie eine .lib-Datei. Welche ich entsprechend mit Linken musste.</p>
<p>Und wegen dem das es eine C Biblo ist bin ich auch jetzt Weg davon. Ständige die Wrapperklasse ausrum bauen nervt :(.</p>
<p>Aber wie gesagt MinGW selbst ist ein Compiler der darauf ausgelegt ist Programme für entsprechend andere Betriebssysteme zu übersetzten aber dies muss mit angegeben werden.</p>
<p>OT: Die 2 Links sind sehr interressant muss ich mir mal genauer anschauen wenn ich heute Abend nach der Arbeit noch Zeit und Lust habe <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>Mfg marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922819</guid><dc:creator><![CDATA[Marc-O]]></dc:creator><pubDate>Wed, 07 Jul 2010 15:39:43 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler beim Einbinden von Bibliothek on Thu, 08 Jul 2010 09:03:37 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>...C hat ...ein standardisiertes ABI...</p>
</blockquote>
<p>Echt? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
War mir bislang unbekannt.<br />
So richtig? Auch mit &quot;endianess&quot; und int-Länge und so?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1923145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1923145</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 08 Jul 2010 09:03:37 GMT</pubDate></item></channel></rss>