FMOD installieren und verwenden



  • Hallo,
    kann mir jemand sagen, wie ich FMOD (tonwiedergabe) richtig installiere?
    Ich nutze Linux (Ubuntu) UND Windows 7.
    Auf beiden Systemen wird die Installation nicht erkannt.

    Unter Linux habe ich das .tar.gz archiv entpackt, ins verzeichnis gewechselt und ein sudo make install gemacht

    Unter Windows hab ich ganz normal den Installer ausgeführt, dennoch werden alle "FMOD-Befehle" vom Compiler nicht erkannt.

    Kann mir da jemand helfen?



  • FMOD Befehle? - Meinst du Funktionsaufrufe?

    Um FMOD zu installieren musst du die benötigten Pfade dem Compiler mitteilen. Also wo die Header (include) und die .lib's sind (lib). Wie man das macht ist abhängig von der IDE.
    Dann musst du noch die richtigen Librarys linken, was ebenfalls weider abhängig von IDE oder Compiler ist.



  • also ich verwende keine ide
    unter win benutze ich mingw und unter linux den g++



  • Willst Du nur ne einfache Tonwiedergabe? Da finde ich FMOD etwas überzogen. Würde eher zu irrKlang raten, da das deutlich einfacher und stressfreier zu verwenden ist. Und es hat auch 3D Features etc.
    lg



  • es ist mir vollkommen egal, welche lib ich nehme!!!
    ich will nur ne mp3 datei wiedergeben (loop) und will wissen, wie ich das zum laufen bringe
    wo muss ich bei windoof den besch. PATH zur lib beim compiler (mingw) eintragen?
    wozu machen diese komischen typen denn einen installer, wenn der es nicht gebacken bekommt etwas vollständig zu installieren?!!!!!!!



  • http://www.ambiera.com/irrklang/tutorial-helloworld.html

    Und es ist wirklich easy zu installieren :). Nach der installation eventuell ldconfig ausführen als root bzw mit sudo.
    lg



  • ey lol,
    ich will kein tutorial,

    ich will keine compilerfehler!!!!!!!!!!
    und die bekomm ich nicht wegen falschem code, sondern weil mir eine installierte lib fehlt!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



  • Beruhig dich mal wieder.

    Lern mal, wie man eine Bibliothek installiert. Dazu nimmst du ein x-beliebiges Tutorial, wo eine Bibliothek eingebunden wird und das funktioniert dann mit jeder anderen genau gleich.

    Wenn du weisst, wie man Irrlicht einbindet, dann weisst du auch, wie man FMOD einbindet oder DirectX oder Boost usw. Funktioniert immer genau gleich.



  • ja, link?
    bei google finde ich 180.000 links zu eclips und creator
    aber nichts alleine für mingw



  • Der Ton macht die Musik, mein Freund.
    Dies hier ist ein Forum, wo man Fragen zu einem Problem stellen kann und dann auch meist eine abstraktere Antwort bekommt. Wir, die anderen Nutzer des Forums sind nicht verpflichtet, dir in irgendeiner Art und weise zu helfen, also nimm schon mal den "Befehlston" aus deinen Beiträgen. Außerdem wäre es auch sehr zuträglich weniger Satzzeichen exzessive zu benutzen.

    Wenn du so weiter machen solltest, dann wird dir irgendwann kein Einziger in dem Forum hier mehr helfen... Außer diejenigen, die dann solche Leute wie dich nie Aufgeben und den "guten Kern" suchen.

    Wenn du müde bist, oder Stress hast und deswegen so aggressiv wirst, dann poste entweder, wenn du dich beruhigt hast oder aber du liest dir den Beitrag einmal objektiv Betrachtet durch und denkst mal, wie es von der anderen Seite aus aussieht einen solchen Beitrag zu lesen. Dann wirst du schnell merken, dass deine letztere Vorgehensweise in diesem Beitrag unter aller Sau war.

    Das nächste mal erst denken, dann schreiben.

    Zu deinem Problem:
    Du könntest die Librarys von FMOD in den lib Unterordner von MinGW kopieren, damit findet er diese und kann sie entsprechend dazu linken. Das ist zumindest der "dirty-way". Für den sauberen ist ein bisschen Google-Forensik gefragt, die ich dir hier nicht abnehme, da meine Zeit kostbarer ist, als mich mit dem Problem so intensiv zu beschäftigen, wenn doch auf entsprechende Antworten Anderer, nicht entsprechend ruhig geantwortet werden kann, sondern "rum getrollt" wird. Somit ist Google dein Freund: "mingw library windows irrklang" oder doch lieber "mingw library windows FMOD", je nachdem was du nun lieber nutzen möchtest.

    Jetzt geh erstmal schlafen und ruh dich aus das verringert Aggressivität und ein Gefallen den ich mir wünschen würde, wenn du nach dem Beitrag "Wut im Bauch" hast, dann ein kleiner Tipp: "Lass es einfach."

    Think again and post later...

    So denn, gute Nacht!
    Blackskyliner



  • Blackskyliner schrieb:

    Zu deinem Problem:
    Du könntest die Librarys von FMOD in den lib Unterordner von MinGW kopieren, damit findet er diese und kann sie entsprechend dazu linken. Das ist zumindest der "dirty-way". Für den sauberen ist ein bisschen Google-Forensik gefragt...

    Danke!!!
    das war doch alles, was ich wollte.
    Ich hab noch nie so was mit libs gemacht und wusste deshalb gar nicht weiter. Hab es bei windows auch in den umgebungsvariablen eingetragen, was nicht geholfen hat.

    Zu meinnem Ton:
    Tut mir leid, war gestern ein "bisschen" total genervt.
    In meinem Zimmer sind gefühlte höllische 80°C (Dach) gewesen, mein PC fährt periodisch runter (vlt. RAM defekt) und das ubuntuusersforum, wo ich die installation von linux gepostet hätte (weil es hier nicht wirklich hingehört) war down.
    Tut mir wirklich leid!

    Daniel



  • Unter Linux ist LD_LIBRARY_PATH dein Freund, das ist ein etwas weniger schmutziger Weg einen globalen Suchpfad für librarys zu setzen, eigentlich besser ist es jedoch die Suchpfade und Libraries direkt anzugeben:
    man ld (scrolldown to -l, -L). Die ld optionen kannst du auch direct am gcc benutzen, sie werden zum linken durchgereicht ... was du mit dem rüberkopieren erreicht hast, ist das die libs nun in einem eh besuchten Pfad stehen und dann jetzt doch gefunden werden...



  • Wobei, wenn man die Library nicht selber compiliert hat, sondern via Paketmanager oder "make install" ins System installiert hat, die Library und Header Daten ja eh im entsprechenden Systemverzeichnis für Librarys liegen wodurch man dann den LD_LIBRARY_PATH nicht extra setzen muss. Man sollte da jedoch nicht vergessen dem Linker entsprechend mitzugeben, dass die Libraray dazu gelinkt werden soll.



  • Blackskyliner schrieb:

    Wobei, wenn man die Library nicht selber compiliert hat, sondern via Paketmanager oder "make install" ins System installiert hat, die Library und Header Daten ja eh im entsprechenden Systemverzeichnis für Librarys liegen wodurch man dann den LD_LIBRARY_PATH nicht extra setzen muss. Man sollte da jedoch nicht vergessen dem Linker entsprechend mitzugeben, dass die Libraray dazu gelinkt werden soll.

    Jupp genau, dann reicht -l 😉



  • padreigh schrieb:

    Die ld optionen kannst du auch direct am gcc benutzen, sie werden zum linken durchgereicht ...

    danke, das habe ich im makefile gesehen
    unter win habe ich es mal schmutzig gemacht, libs und includes rüberkopiert, dennoch bekomm ich ne fehlermeldung, bei nem simplen programm:
    für das bsp ist sogar das schmutzige linken egal, weil die makedatei verwendet wird, die auf die richtigen dateien verweist...

    bsp1 (hello world example):

    C:\Users\daniel\Desktop\irrKlang-1.3.0\irrKlang-1.3.0\examples\01.HelloWorld>min
    gw32-make
    g++ main.cpp -o example -I"../../include" -L"/usr/lib" ../../bin/linux-gcc/libIr
    rKlang.so -pthread
    g++: unrecognized option `-pthread'
    ../../bin/linux-gcc/libIrrKlang.so: could not read symbols: File in wrong format
    
    collect2: ld returned 1 exit status
    mingw32-make: *** [all] Error 1
    

    bsp2:

    C:\Users\daniel\Desktop>g++ test.cpp -o test
    test.cpp:21:2: warning: no newline at end of file
    C:\Users\daniel\AppData\Local\Temp/ccgIXOZv.o:test.cpp:(.text+0x148): undefined
    reference to `_imp___ZN8irrklang20createIrrKlangDeviceENS_21E_SOUND_OUTPUT_DRIVE
    REiPKcS2_'
    collect2: ld returned 1 exit status
    

    src:

    #include <iostream>
    #include <irrKlang.h>
    using namespace irrklang;
    
    int main(int argc, const char** argv)
    {
      // start the sound engine with default parameters
      ISoundEngine* engine = createIrrKlangDevice();
    
      if (!engine)
        return 0; // error starting up the engine
    
      // play some sound stream, looped
      engine->play2D("somefile.mp3", true);
    
      char i = 0;
      std::cin >> i; // wait for user to press some key
    
      engine->drop(); // delete engine
      return 0;
    }
    

    Weshalb erhalte ich in BEIDEN fällen denn dann fehler?
    ich wechsel gleich noch mal zu lin...

    ps.:
    Die windows konsole ist grauenhaft!!!

    wenn mir jemand sagt, wie die libs für die paketmanager heißen, wäre das beste!!! ich finde nähmlich kein fmod und auch kein irrklang, lediglich irrlicht.



  • Sorry für großkleinschreibung, habe gerade eine Hand mit 8kg zappelndem Säugling voll ..

    sudo rm -rf schrieb:

    bsp1 (hello world example):

    C:\Users\daniel\Desktop\irrKlang-1.3.0\irrKlang-1.3.0\examples\01.HelloWorld>min
    gw32-make
    g++ main.cpp -o example -I"../../include" -L"/usr/lib" ../../bin/linux-gcc/libIr
    rKlang.so -pthread
    g++: unrecognized option `-pthread'
    ../../bin/linux-gcc/libIrrKlang.so: could not read symbols: File in wrong format
    
    collect2: ld returned 1 exit status
    mingw32-make: *** [all] Error 1
    

    Du sagst er soll in "../../include" nach den Includes suchen und in "/usr/lib/ nach libraries.
    Ich denke (nicht viel mingw erfahrung) da fehlt noch ein -lLIBRARYNAME damit er auch weiss gegen welche library er linken soll.
    Die folgende Fehlermeldung scvheint das zu relativieren .. aber irgendwie ist die lib nicht korrekt ... (vieleicht windows verison rutnergeladen und brauchst linux oder andersrum?

    sudo rm -rf schrieb:

    bsp2:

    C:\Users\daniel\Desktop>g++ test.cpp -o test
    test.cpp:21:2: warning: no newline at end of file
    C:\Users\daniel\AppData\Local\Temp/ccgIXOZv.o:test.cpp:(.text+0x148): undefined
    reference to `_imp___ZN8irrklang20createIrrKlangDeviceENS_21E_SOUND_OUTPUT_DRIVE
    REiPKcS2_'
    collect2: ld returned 1 exit status
    

    -dir fehlt ein enter am ende deines codes (no newline at end of file)

    - er kennt die implementierung einer methode die du inkludiert hast nicht
    (undefined
    reference to `_imp___ZN8irrklang20createIrrKlangDeviceENS_21E_SOUND_OUTPUT_DRIVE
    REiPKcS2_')

    Die include-dateien sagen dem linker nur "was" in einer gelinkten lib drin ist, die lib selber muss mit
    reingelinkt sein damit die funktionalität besteht.

    Es ist in etwa so als ob du das Inhaltsverzeichnisnis (erstes Buch der 48-bändigen BrockhausEnzyklopädie (pro Buch: 1000 Seiten) in die Hand bekommst
    und jemand von dir die 5 Erklärungen von "Mauer, die" haben möchte. Nur mit dem Inhaltsverzeichnis kommst du da nicht weit. Du brauchst den Band "Mau- Mui" dafür 😉

    wenn du genau hinschaust, fehlt bei "g++ test.cpp -o test" ein "-L<verzeichnisderlibrary> -l<libraryname>" ...

    sudo rm -rf schrieb:

    Weshalb erhalte ich in BEIDEN fällen denn dann fehler?
    ich wechsel gleich noch mal zu lin...

    ps.:
    Die windows konsole ist grauenhaft!!!

    wenn mir jemand sagt, wie die libs für die paketmanager heißen, wäre das beste!!! ich finde nähmlich kein fmod und auch kein irrklang, lediglich irrlicht.

    Es gibt nicht ALLES als Paket, sorry. IrrKlang ist ein "addon" zu irrlicht und vermutlich nicht so dabei 😕

    Wenn du Linux hast, wechsel zu linux, lade irrklang runter, entpacks und benutz deren makefiles zum testen obs klappt. wenn da alles compiliert scheitert dein code nur an fehlenden lib/includes, da hilft dir ein blick in die original makefiles vielleicht weiter.



  • Danke für die ausführliche Antwort!!!
    Ich hab jetzt wieder Linux am laufen.

    die originale Makedatei:

    CPP = g++
    OPTS =  -I"../../include" -L"/usr/lib" ../../bin/linux-gcc/libIrrKlang.so -pthread
    
    all:
    	$(CPP) main.cpp -o example $(OPTS)
    
    clean:
    	rm example
    

    wenn ich ein make mache, dann bekomm ich auch nur fehler!

    bla@desktop:~/Desktop/irrKlang-1.3.0/irrKlang-1.3.0/examples/01.HelloWorld$ make
    g++ main.cpp -o example -I"../../include" -L"/usr/lib" ../../bin/linux-gcc/libIrrKlang.so -pthread
    ../../bin/linux-gcc/libIrrKlang.so: could not read symbols: File in wrong format
    collect2: ld returned 1 exit status
    make: *** [all] Fehler 1
    

    wenn ich nicht noch bescheuerter bin, als ihr mich ohnehin schon haltet, dann muss doch die makedatei falsch sein.

    -L sagt, wo die lib steht
    -I wo die includes sind
    -l wie die lib heißt
    richtig?

    -I"../../include/"
    -L"/home/bla/Desktop/irrKlang-1.3.0/irrKlang-1.3.0/bin/linux-gcc/"
    weiß nicht wie man -l angeben muss -->libIrrKlang.so

    daraus würde ich dann ein
    g++ main.cpp -o example -I"../../include/" -L"/home/bla/Desktop/irrKlang-1.3.0/irrKlang-1.3.0/bin/linux-gcc/" libIrrKlang.so
    machen.
    geht aber nicht:

    bla@desktop:~/Desktop/irrKlang-1.3.0/irrKlang-1.3.0/examples/01.HelloWorld$ g++ main.cpp -o example -I"../../include/" -L"/home/bla/Desktop/irrKlang-1.3.0/irrKlang-1.3.0/bin/linux-gcc/" libIrrKlang.so
    g++: libIrrKlang.so: No such file or directory
    

    ich versteh gar nichts mehr!



  • -l nimmt schon OS spezifika in Betracht,

    -lIrrKlang sollte reichen, der nimmt unter linux dann automatisch libIrrKlang.so als libname an

    ich hab das IrrKlang gerade mal runtergeladen und bekomme die selbe Fehlermelung <tröst>.
    Google brachte mich auf Seiten die auf Probleme mit linux 64-bit Hinweisen ...

    Mach mal
    uname -a

    wenn da ein Text mit "x86_64" kommt, nutzt du auch 64 bit. Die Readme zu Irrklang sagt

    irrKlang now also runs on 64 bit linux systems. It previously looked for the alsa lib in /usr/lib/libasound.so, but on 64 bit system this is located in /usr/lib32/libasound.so. This is fixed now.

    was darauf schließen lässt das IrrKlang Alsa braucht. Check mal ob du die Datei hast, wenn nicht, nutz den aptitude um es zu installieren und hoffenlich läufts dann.



  • ja, ich hab ein 64bit os

    bla@desktop:~/Desktop/irrKlang-1.3.0/irrKlang-1.3.0/examples/01.HelloWorld$ arch
    x86_64
    

    aber noch mal für blöde, wie mich:
    ja ich habe /usr/lib32/libasound.so.2.0.0 und auch /usr/lib/libasound.so.2.0.0
    was soll ich damit jetzt machen?

    auf meinem eee pc mit UNE 32 bit läuft alles wunderbar, nur hier am großen eben nicht...


Anmelden zum Antworten