<?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[Verweis auf nicht aufgelöstes externes Symbol]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein fertigen Code comilieren und linken, der also schon funktionstüchtig sein müsste. Wenn ich ihn (mit VisualStudio2008) im release-Modus übersetze, funktioniert das Programm wunderbar. Versuche ich das ganze jedoch im debug-Modus, bekomme ich folgende Fehlermeldungen:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: Memmng, Konfiguration: debug Win32 ------<br />
1&gt;Verknüpfen...<br />
1&gt;Memmng.obj : warning LNK4075: /EDITANDCONTINUE wird aufgrund der Angabe von /INCREMENTAL:NO ignoriert.<br />
1&gt;Plda_api.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;_InterruptEnable@20&quot; in Funktion &quot;_PldaInitializeKerplugInterrupt&quot;.<br />
1&gt;Plda_api.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;_InterruptDisable@4&quot; in Funktion &quot;_PldaReleaseInterrupt&quot;.<br />
1&gt;.\Debug/Memmng.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.<br />
1&gt;Das Buildprotokoll wurde unter &quot;file://d:\entwicklung\sw\Memmng\Debug\BuildLog.htm&quot; gespeichert.<br />
1&gt;Memmng - 3 Fehler, 1 Warnung(en)<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Kann mir vielleicht jemand sagen was mein Fehler ist?<br />
Danke im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/219195/verweis-auf-nicht-aufgelöstes-externes-symbol</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 12:49:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/219195.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Jul 2008 15:57:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Wed, 30 Jul 2008 15:57:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein fertigen Code comilieren und linken, der also schon funktionstüchtig sein müsste. Wenn ich ihn (mit VisualStudio2008) im release-Modus übersetze, funktioniert das Programm wunderbar. Versuche ich das ganze jedoch im debug-Modus, bekomme ich folgende Fehlermeldungen:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: Memmng, Konfiguration: debug Win32 ------<br />
1&gt;Verknüpfen...<br />
1&gt;Memmng.obj : warning LNK4075: /EDITANDCONTINUE wird aufgrund der Angabe von /INCREMENTAL:NO ignoriert.<br />
1&gt;Plda_api.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;_InterruptEnable@20&quot; in Funktion &quot;_PldaInitializeKerplugInterrupt&quot;.<br />
1&gt;Plda_api.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;_InterruptDisable@4&quot; in Funktion &quot;_PldaReleaseInterrupt&quot;.<br />
1&gt;.\Debug/Memmng.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.<br />
1&gt;Das Buildprotokoll wurde unter &quot;file://d:\entwicklung\sw\Memmng\Debug\BuildLog.htm&quot; gespeichert.<br />
1&gt;Memmng - 3 Fehler, 1 Warnung(en)<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Kann mir vielleicht jemand sagen was mein Fehler ist?<br />
Danke im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556499</guid><dc:creator><![CDATA[Hans_Wurst]]></dc:creator><pubDate>Wed, 30 Jul 2008 15:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Wed, 30 Jul 2008 16:06:04 GMT]]></title><description><![CDATA[<p>Zeig mal ein wenig Code...<br />
Vielleicht vergessen eine Lib zu linken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556506</guid><dc:creator><![CDATA[Speedy_92]]></dc:creator><pubDate>Wed, 30 Jul 2008 16:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Wed, 30 Jul 2008 16:36:21 GMT]]></title><description><![CDATA[<p>Ich weiß leider nicht welchen Teil ich am besten zeigen sollte. Es sind sehr viele Dateien und alle ein zu stellen ist sicher nicht sinnvoll.</p>
<p>Das einzige in dem ich etwas von z.B. &quot;PldaInitializeKerplugInterrupt&quot; finden kann (der Fehler bemängelt jedoch &quot;_PldaInitializeKerplugInterrupt&quot;) ist im nachfolgenden Code, in dessen Headerdatei und in der Datei, in der er ausgeführt werden soll.</p>
<p>Die gesamte Anwendung (in die ich mich hier einarbeiten soll) soll per PCIe auf den Speicher einer Steckkarte zugreifen können.</p>
<p>Ausschnitt:</p>
<p>/*************************************************************************************<br />
**<br />
** Initialise interrupt<br />
**<br />
*************************************************************************************/</p>
<p>DWORD PldaInitializeKerplugInterrupt (DWORD PCIAgentIndex,PVOID pData,INT_PLDA_HANDLER pPldaIntHandler)<br />
{<br />
BZERO(g_Int[PCIAgentIndex]);</p>
<p>/* Check if interrupt can be initialised */<br />
if (g_hWD == INVALID_HANDLE_VALUE) return FALSE;<br />
if (g_PCIResources[PCIAgentIndex].hInterrupt == 0) return FALSE;<br />
if (g_PCIResources[PCIAgentIndex].hThread != 0) return FALSE;<br />
if (g_kerPlugin.hKernelPlugIn==0) return FALSE;</p>
<p>/* Set-up interrupt structure */<br />
g_Int[PCIAgentIndex].hInterrupt=g_PCIResources[PCIAgentIndex].hInterrupt;<br />
g_Int[PCIAgentIndex].kpCall.hKernelPlugIn=g_kerPlugin.hKernelPlugIn;<br />
g_Int[PCIAgentIndex].kpCall.pData=pData;</p>
<p>g_PCIResources[PCIAgentIndex].IntCount = 0;</p>
<p>if (!InterruptEnable( &amp;g_PCIResources[PCIAgentIndex].hThread, g_hWD, &amp;g_Int[PCIAgentIndex], (INT_PLDA_HANDLER) pPldaIntHandler,NULL))<br />
return FALSE;</p>
<p>return TRUE;<br />
}</p>
<p>DWORD PldaInitializeInterrupt(DWORD PCIAgentIndex, SPCIInterruptTransfer* pPCIInterruptTransfer, INT_PLDA_HANDLER pPldaIntHandler)<br />
{<br />
BZERO(g_Int[PCIAgentIndex]);<br />
BZERO(g_Trans[PCIAgentIndex][0]);<br />
BZERO(g_Trans[PCIAgentIndex][1]);</p>
<p>if (g_hWD == INVALID_HANDLE_VALUE)<br />
return FALSE;</p>
<p>if (g_PCIResources[PCIAgentIndex].hInterrupt == 0)<br />
return FALSE;</p>
<p>if (g_PCIResources[PCIAgentIndex].hThread != 0)<br />
return FALSE;</p>
<p>g_Trans[PCIAgentIndex][0].dwPort = g_PCIResources[PCIAgentIndex].BARUserAddress[pPCIInterruptTransfer-&gt;BarIndex]<br />
+ pPCIInterruptTransfer-&gt;ByteOffset;<br />
g_Trans[PCIAgentIndex][0].Data.Dword = pPCIInterruptTransfer-&gt;ResetValue;</p>
<p>switch (pPCIInterruptTransfer-&gt;AccessType)<br />
{<br />
case ISR_READ:<br />
g_Trans[PCIAgentIndex][0].cmdTrans = RM_DWORD;<br />
g_Int[PCIAgentIndex].dwCmds = 1;<br />
break;<br />
case ISR_WRITE:<br />
g_Trans[PCIAgentIndex][0].cmdTrans = WM_DWORD;<br />
g_Int[PCIAgentIndex].dwCmds = 1;<br />
break;<br />
case ISR_RW:<br />
g_Trans[PCIAgentIndex][0].cmdTrans = RM_DWORD;<br />
g_Trans[PCIAgentIndex][1].cmdTrans = WM_DWORD;<br />
g_Trans[PCIAgentIndex][1].dwPort =g_Trans[PCIAgentIndex][0].dwPort;<br />
g_Trans[PCIAgentIndex][1].Data.Dword =g_Trans[PCIAgentIndex][0].Data.Dword;<br />
g_Int[PCIAgentIndex].dwCmds = 2;<br />
break;<br />
default: return FALSE;<br />
}</p>
<p>/* Indicate that interrupt is handled by kernel plug-in */<br />
if (g_kerPlugin.hKernelPlugIn!=0)<br />
g_Int[PCIAgentIndex].kpCall.hKernelPlugIn=g_kerPlugin.hKernelPlugIn;</p>
<p>g_Int[PCIAgentIndex].hInterrupt = g_PCIResources[PCIAgentIndex].hInterrupt;<br />
g_Int[PCIAgentIndex].Cmd = g_Trans[PCIAgentIndex];</p>
<p>g_Int[PCIAgentIndex].dwOptions |= INTERRUPT_CMD_COPY;</p>
<p>g_PCIResources[PCIAgentIndex].IntCount = 0;</p>
<p>if (!InterruptEnable(<br />
&amp;g_PCIResources[PCIAgentIndex].hThread,<br />
g_hWD,<br />
&amp;g_Int[PCIAgentIndex],<br />
(INT_PLDA_HANDLER) pPldaIntHandler,<br />
(void*)&amp;g_Int[PCIAgentIndex]))<br />
return FALSE;</p>
<p>return TRUE;<br />
}</p>
<p>/*************************************************************************************<br />
**<br />
** Release interrupt<br />
**<br />
*************************************************************************************/</p>
<p>DWORD PldaReleaseInterrupt(DWORD PCIAgentIndex)<br />
{<br />
if (g_hWD == INVALID_HANDLE_VALUE) return FALSE;<br />
if (g_PCIResources[PCIAgentIndex].hInterrupt == 0) return FALSE;<br />
if (g_PCIResources[PCIAgentIndex].hThread == 0) return FALSE;</p>
<p>InterruptDisable(g_PCIResources[PCIAgentIndex].hThread);<br />
g_PCIResources[PCIAgentIndex].hThread = NULL;</p>
<p>return TRUE;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556527</guid><dc:creator><![CDATA[Hans_Wurst]]></dc:creator><pubDate>Wed, 30 Jul 2008 16:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Wed, 30 Jul 2008 18:38:15 GMT]]></title><description><![CDATA[<p>Wie gesagt. Das hat nichts mit dem Code zu tun. Das sind Linkerfehler.<br />
Du musst also nochmal schauen, ob die du lib richtig einbindest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556591</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 30 Jul 2008 18:38:15 GMT</pubDate></item><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Thu, 31 Jul 2008 08:13:30 GMT]]></title><description><![CDATA[<p>Dieses C++ macht mich echt zu schaffen. (bin eher ein C-Programmierer)</p>
<p>Ich dachte mir ich kommentiere jetzt einfach mal alles, bis auf die main-Schleife aus um wenigstens einen Teil des Programmes im Debug-Modus durch&quot;steppen&quot; zu können, aber es gibt überhaupt kein main.<br />
Wo fängt denn dann das Programm an seinen Code ab zu arbeiten?</p>
<p>(Sorry für diese Anfängerfrage. Habe mich um diese Aufgabe nicht gerade gerissen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Kann meinem Chef aber leider nicht einfach sagen, dass ich es nicht machen möchte. Eigentlich will ich will ich das ja auch gar nicht aufgeben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556827</guid><dc:creator><![CDATA[Hans_Wurst]]></dc:creator><pubDate>Thu, 31 Jul 2008 08:13:30 GMT</pubDate></item><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Thu, 31 Jul 2008 08:22:10 GMT]]></title><description><![CDATA[<p>Hans_Wurst schrieb:</p>
<blockquote>
<p>Dieses C++ macht mich echt zu schaffen. (bin eher ein C-Programmierer)</p>
</blockquote>
<p>Der Code da oben sieht auch irgendwie nicht nach C++ aus sondern eher wie C. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Es gibt definitiv eine Main-Funktion. Sie heißt evtl. anders. Das hängt jetzt von deiner verwendeten API ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556834</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 31 Jul 2008 08:22:10 GMT</pubDate></item><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Thu, 31 Jul 2008 08:24:39 GMT]]></title><description><![CDATA[<p>Hans_Wurst schrieb:</p>
<blockquote>
<p>Dieses C++ macht mich echt zu schaffen. (bin eher ein C-Programmierer)</p>
</blockquote>
<p>Das gepostete <strong>ist</strong> C. Pur.</p>
<blockquote>
<p>Ich dachte mir ich kommentiere jetzt einfach mal alles, bis auf die main-Schleife aus um wenigstens einen Teil des Programmes im Debug-Modus durch&quot;steppen&quot; zu können, aber es gibt überhaupt kein main.<br />
Wo fängt denn dann das Programm an seinen Code ab zu arbeiten?</p>
</blockquote>
<p>Bei WinAPI-Software ist der Einstiegspunkt z.B. WinMain.</p>
<blockquote>
<p>Das einzige in dem ich etwas von z.B. &quot;PldaInitializeKerplugInterrupt&quot; finden kann (der Fehler bemängelt jedoch &quot;_PldaInitializeKerplugInterrupt&quot;) ist im nachfolgenden Code, in dessen Headerdatei und in der Datei, in der er ausgeführt werden soll.</p>
</blockquote>
<p>Richtig, und darin werden die unbekannten Funktionen InterruptEnable und InterruptDisable benutzt. Da das keine WinAPI-Funktionen sind (ich konnte sie in der MSDN jedenfalls nicht finden), musst Du rausfinden in welcher Bibliothek die sind. Da können wir Dir nicht helfen, es seidenn jemand hat diese Bibliothek zufällig auch schon benutzt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>EDIT: Gehören die vielleicht zum DDK (Driver Development Kit)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556836</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 31 Jul 2008 08:24:39 GMT</pubDate></item><item><title><![CDATA[Reply to Verweis auf nicht aufgelöstes externes Symbol on Thu, 31 Jul 2008 08:34:04 GMT]]></title><description><![CDATA[<p>Hans_Wurst schrieb:</p>
<blockquote>
<p>Dieses C++ macht mich echt zu schaffen. (bin eher ein C-Programmierer)...</p>
</blockquote>
<p>Kann es vielleicht am Mix der beiden liegen ?<br />
In C++ heißen Funktionen nach dem Compile anders als in C ... wenn nun nach einem C-Compile eine Funktion in einem C++-Object (ohne extern &quot;C&quot;) gesucht wird (oder anders herum), kommt es zu genau solchen unaufgelösten Referenzen.</p>
<p>Die Funktionsnamen im Link-Output oben sehen ein wenig nach C-Object aus.</p>
<p>Manche C/C++-Compiler entscheiden sich auch &quot;automatisch&quot; (z.B. aufgrund der Dateiendung) dafür, einen Quelltext in C und nicht in C++ zu kompilieren....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1556843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1556843</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 31 Jul 2008 08:34:04 GMT</pubDate></item></channel></rss>