<?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[FMOD-Beispielprojekt kompillieren &amp;amp; linken]]></title><description><![CDATA[<p>Hi,</p>
<p>derzeit spiele ich bisschen mit FMOD rum und wollte als erstes mal eines der zahlreich beigelegten Beispielprojekte selbst kompillieren (Hab mich für &quot;playstream&quot; entschieden).</p>
<p>Nunja, kompillieren ist mit der C++Datei sowie der C-Datei gleichermaßen kein Problem, allerdigns kann ich die C++Objekt-Datei nicht mit der libfmodex.a linken, mit der C-Version klappt das aber problemlos.</p>
<p>Ich lasse das jeweils von meiner IDE erledigen, aber Pfade etc. sind jeweils die selben, also müsste es ja klappen. Als Fehlermeldung erscheint:</p>
<pre><code>--------------------Configuration: fmodxy - Debug--------------------
Linking...
C:\MinGWStudio\test1\fmodxy\Debug\main.o: In function `main':
C:\MinGWStudio\test1\fmodxy\main.cpp:43: undefined reference to `_ZN4FMOD6System10getVersionEPj@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:52: undefined reference to `_ZN4FMOD6System4initEijPv@16'
C:\MinGWStudio\test1\fmodxy\main.cpp:55: undefined reference to `_ZN4FMOD6System12createStreamEPKcjP22FMOD_CREATESOUNDEXINFOPPNS_5SoundE@20'
C:\MinGWStudio\test1\fmodxy\main.cpp:69: undefined reference to `_ZN4FMOD6System9playSoundE17FMOD_CHANNELINDEXPNS_5SoundEbPPNS_7ChannelE@20'
C:\MinGWStudio\test1\fmodxy\main.cpp:86: undefined reference to `_ZN4FMOD7Channel9getPausedEPb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:87: undefined reference to `_ZN4FMOD7Channel9setPausedEb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:93: undefined reference to `_ZN4FMOD6System6updateEv@4'
C:\MinGWStudio\test1\fmodxy\main.cpp:102: undefined reference to `_ZN4FMOD7Channel9isPlayingEPb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:108: undefined reference to `_ZN4FMOD7Channel9getPausedEPb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:114: undefined reference to `_ZN4FMOD7Channel11getPositionEPjj@12'
C:\MinGWStudio\test1\fmodxy\main.cpp:120: undefined reference to `_ZN4FMOD5Sound9getLengthEPjj@12'
C:\MinGWStudio\test1\fmodxy\main.cpp:138: undefined reference to `_ZN4FMOD5Sound7releaseEv@4'
C:\MinGWStudio\test1\fmodxy\main.cpp:140: undefined reference to `_ZN4FMOD6System5closeEv@4'
C:\MinGWStudio\test1\fmodxy\main.cpp:142: undefined reference to `_ZN4FMOD6System7releaseEv@4'
collect2: ld returned 1 exit status

fmodxy.exe - 14 error(s), 0 warning(s)
</code></pre>
<p>Bin ich zu doof dafür oder warum funkt das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158391/fmod-beispielprojekt-kompillieren-amp-linken</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 03:09:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158391.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Sep 2006 23:19:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Mon, 04 Sep 2006 23:19:34 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>derzeit spiele ich bisschen mit FMOD rum und wollte als erstes mal eines der zahlreich beigelegten Beispielprojekte selbst kompillieren (Hab mich für &quot;playstream&quot; entschieden).</p>
<p>Nunja, kompillieren ist mit der C++Datei sowie der C-Datei gleichermaßen kein Problem, allerdigns kann ich die C++Objekt-Datei nicht mit der libfmodex.a linken, mit der C-Version klappt das aber problemlos.</p>
<p>Ich lasse das jeweils von meiner IDE erledigen, aber Pfade etc. sind jeweils die selben, also müsste es ja klappen. Als Fehlermeldung erscheint:</p>
<pre><code>--------------------Configuration: fmodxy - Debug--------------------
Linking...
C:\MinGWStudio\test1\fmodxy\Debug\main.o: In function `main':
C:\MinGWStudio\test1\fmodxy\main.cpp:43: undefined reference to `_ZN4FMOD6System10getVersionEPj@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:52: undefined reference to `_ZN4FMOD6System4initEijPv@16'
C:\MinGWStudio\test1\fmodxy\main.cpp:55: undefined reference to `_ZN4FMOD6System12createStreamEPKcjP22FMOD_CREATESOUNDEXINFOPPNS_5SoundE@20'
C:\MinGWStudio\test1\fmodxy\main.cpp:69: undefined reference to `_ZN4FMOD6System9playSoundE17FMOD_CHANNELINDEXPNS_5SoundEbPPNS_7ChannelE@20'
C:\MinGWStudio\test1\fmodxy\main.cpp:86: undefined reference to `_ZN4FMOD7Channel9getPausedEPb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:87: undefined reference to `_ZN4FMOD7Channel9setPausedEb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:93: undefined reference to `_ZN4FMOD6System6updateEv@4'
C:\MinGWStudio\test1\fmodxy\main.cpp:102: undefined reference to `_ZN4FMOD7Channel9isPlayingEPb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:108: undefined reference to `_ZN4FMOD7Channel9getPausedEPb@8'
C:\MinGWStudio\test1\fmodxy\main.cpp:114: undefined reference to `_ZN4FMOD7Channel11getPositionEPjj@12'
C:\MinGWStudio\test1\fmodxy\main.cpp:120: undefined reference to `_ZN4FMOD5Sound9getLengthEPjj@12'
C:\MinGWStudio\test1\fmodxy\main.cpp:138: undefined reference to `_ZN4FMOD5Sound7releaseEv@4'
C:\MinGWStudio\test1\fmodxy\main.cpp:140: undefined reference to `_ZN4FMOD6System5closeEv@4'
C:\MinGWStudio\test1\fmodxy\main.cpp:142: undefined reference to `_ZN4FMOD6System7releaseEv@4'
collect2: ld returned 1 exit status

fmodxy.exe - 14 error(s), 0 warning(s)
</code></pre>
<p>Bin ich zu doof dafür oder warum funkt das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131205</guid><dc:creator><![CDATA[FMOD-Spielkind]]></dc:creator><pubDate>Mon, 04 Sep 2006 23:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Tue, 05 Sep 2006 22:45:00 GMT]]></title><description><![CDATA[<p>die cpp-datei sieht so aus:</p>
<pre><code>/*===============================================================================================
 PlayStream Example
 Copyright (c), Firelight Technologies Pty, Ltd 2004-2005.

 This example shows how to simply play a stream, such as an mp3 or wav.
 The stream behaviour is achieved by specifying FMOD_CREATESTREAM in the call to 
 System::createSound.
 This makes FMOD decode the file in realtime as it plays, instead of loading it all at once.
 This uses far less memory, in exchange for a small runtime cpu hit.
===============================================================================================*/
#include &quot;../../api/inc/fmod.hpp&quot;
#include &quot;../../api/inc/fmod_errors.h&quot;
#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

void ERRCHECK(FMOD_RESULT result)
{
    if (result != FMOD_OK)
    {
        printf(&quot;FMOD error! (%d) %s\n&quot;, result, FMOD_ErrorString(result));
        exit(-1);
    }
}

int main(int argc, char *argv[])
{
    FMOD::System     *system;
    FMOD::Sound      *sound;
    FMOD::Channel    *channel = 0;
    FMOD_RESULT       result;
    int               key;
    unsigned int      version;

    /*
        Create a System object and initialize.
    */
    result = FMOD::System_Create(&amp;system);
    ERRCHECK(result);

    result = system-&gt;getVersion(&amp;version);
    ERRCHECK(result);

    if (version &lt; FMOD_VERSION)
    {
        printf(&quot;Error!  You are using an old version of FMOD %08x.  This program requires %08x\n&quot;, version, FMOD_VERSION);
        return 0;
    }

    result = system-&gt;init(1, FMOD_INIT_NORMAL, 0);
    ERRCHECK(result);

    result = system-&gt;createStream(&quot;../media/wave.mp3&quot;, FMOD_HARDWARE | FMOD_LOOP_NORMAL | FMOD_2D, 0, &amp;sound);
    ERRCHECK(result);

    printf(&quot;====================================================================\n&quot;);
    printf(&quot;PlayStream Example.  Copyright (c) Firelight Technologies 2004-2005.\n&quot;);
    printf(&quot;====================================================================\n&quot;);
    printf(&quot;\n&quot;);
    printf(&quot;Press space to pause, Esc to quit\n&quot;);
    printf(&quot;\n&quot;);

    /*
        Play the sound.
    */

    result = system-&gt;playSound(FMOD_CHANNEL_FREE, sound, false, &amp;channel);
    ERRCHECK(result);

    /*
        Main loop.
    */
    do
    {
        if (kbhit())
        {
            key = getch();

            switch (key)
            {
                case ' ' :
                {
                    bool paused;
                    channel-&gt;getPaused(&amp;paused);
                    channel-&gt;setPaused(!paused);
                    break;
                }
            }
        }

        system-&gt;update();

        if (channel)
        {
            unsigned int ms;
            unsigned int lenms;
            bool         playing;
            bool         paused;

            channel-&gt;isPlaying(&amp;playing);
            if ((result != FMOD_OK) &amp;&amp; (result != FMOD_ERR_INVALID_HANDLE))
            {
                ERRCHECK(result);
            }

            result = channel-&gt;getPaused(&amp;paused);
            if ((result != FMOD_OK) &amp;&amp; (result != FMOD_ERR_INVALID_HANDLE))
            {
                ERRCHECK(result);
            }

            result = channel-&gt;getPosition(&amp;ms, FMOD_TIMEUNIT_MS);
            if ((result != FMOD_OK) &amp;&amp; (result != FMOD_ERR_INVALID_HANDLE))
            {
                ERRCHECK(result);
            }

            result = sound-&gt;getLength(&amp;lenms, FMOD_TIMEUNIT_MS);
            if ((result != FMOD_OK) &amp;&amp; (result != FMOD_ERR_INVALID_HANDLE))
            {
                ERRCHECK(result);
            }

            printf(&quot;Time %02d:%02d:%02d/%02d:%02d:%02d : %s\r&quot;, ms / 1000 / 60, ms / 1000 % 60, ms / 10 % 100, lenms / 1000 / 60, lenms / 1000 % 60, lenms / 10 % 100, paused ? &quot;Paused &quot; : playing ? &quot;Playing&quot; : &quot;Stopped&quot;);
        }

        Sleep(10);

    } while (key != 27);

    printf(&quot;\n&quot;);

    /*
        Shut down
    */
    result = sound-&gt;release();
    ERRCHECK(result);
    result = system-&gt;close();
    ERRCHECK(result);
    result = system-&gt;release();
    ERRCHECK(result);

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1131922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131922</guid><dc:creator><![CDATA[paster]]></dc:creator><pubDate>Tue, 05 Sep 2006 22:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Tue, 05 Sep 2006 22:53:34 GMT]]></title><description><![CDATA[<p>ich hab's grad überprüft, es klappt wirkich nicht!<br />
muss wohl an der fmod-lib liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131925</guid><dc:creator><![CDATA[Grober__]]></dc:creator><pubDate>Tue, 05 Sep 2006 22:53:34 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Tue, 05 Sep 2006 23:09:39 GMT]]></title><description><![CDATA[<p>you can't use the C++ interface under anything but MSVC because C++ symbols are not def'able and are not compatible.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131931</guid><dc:creator><![CDATA[brett__]]></dc:creator><pubDate>Tue, 05 Sep 2006 23:09:39 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Tue, 05 Sep 2006 23:18:06 GMT]]></title><description><![CDATA[<p>C Interface nutzen und selber in Klassen wrappen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131934</guid><dc:creator><![CDATA[kenner der Lösung]]></dc:creator><pubDate>Tue, 05 Sep 2006 23:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Tue, 05 Sep 2006 23:21:44 GMT]]></title><description><![CDATA[<p>kenner der Lösung schrieb:</p>
<blockquote>
<p>C Interface nutzen und selber in Klassen wrappen!</p>
</blockquote>
<p>boah, das ist aber masochistisch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131935</guid><dc:creator><![CDATA[kenner des kenner der lös]]></dc:creator><pubDate>Tue, 05 Sep 2006 23:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Tue, 05 Sep 2006 23:28:43 GMT]]></title><description><![CDATA[<p>kenner des kenner der lös schrieb:</p>
<blockquote>
<p>kenner der Lösung schrieb:</p>
<blockquote>
<p>C Interface nutzen und selber in Klassen wrappen!</p>
</blockquote>
<p>boah, das ist aber masochistisch!</p>
</blockquote>
<p>Nein, vernünftig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131939</guid><dc:creator><![CDATA[dfgggggggggggggg]]></dc:creator><pubDate>Tue, 05 Sep 2006 23:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Wed, 06 Sep 2006 03:24:22 GMT]]></title><description><![CDATA[<p>dfgggggggggggggg schrieb:</p>
<blockquote>
<p>kenner des kenner der lös schrieb:</p>
<blockquote>
<p>kenner der Lösung schrieb:</p>
<blockquote>
<p>C Interface nutzen und selber in Klassen wrappen!</p>
</blockquote>
<p>boah, das ist aber masochistisch!</p>
</blockquote>
<p>Nein, vernünftig</p>
</blockquote>
<p>ok, hast mich überzeugt. aber nur wrappen, was auch nötig ist, ok?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131953</guid><dc:creator><![CDATA[maso]]></dc:creator><pubDate>Wed, 06 Sep 2006 03:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to FMOD-Beispielprojekt kompillieren &amp;amp; linken on Wed, 06 Sep 2006 12:54:41 GMT]]></title><description><![CDATA[<p>maso schrieb:</p>
<blockquote>
<p>dfgggggggggggggg schrieb:</p>
<blockquote>
<p>kenner des kenner der lös schrieb:</p>
<blockquote>
<p>kenner der Lösung schrieb:</p>
<blockquote>
<p>C Interface nutzen und selber in Klassen wrappen!</p>
</blockquote>
<p>boah, das ist aber masochistisch!</p>
</blockquote>
<p>Nein, vernünftig</p>
</blockquote>
<p>ok, hast mich überzeugt. aber nur wrappen, was auch nötig ist, ok?</p>
</blockquote>
<p>Wenn schon wrappen, dann richtig.<br />
=&gt; Mit eigener Funktionalität erweitern, sprich an siene Bedrüfnisse anpassen und nicht nur ganz trocken die C Funktionen in C++ klassen packen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132288</guid><dc:creator><![CDATA[Sado]]></dc:creator><pubDate>Wed, 06 Sep 2006 12:54:41 GMT</pubDate></item></channel></rss>