Projekt mit Lame zusammen builden

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Projekt mit Lame zusammen builden

Beitrag von skeemo »

Hallo,

vermutlich denke ich zu kompliziert...

Aber mal von Anfang an:

Ich schreibe gerade ein kleines (plattformunabhängiges!) Audioschnittprogramm. Die Audiorohdaten will ich auch als MP3 encodieren können ( und decodieren).

Da gibt es ja diverse De/Encoder, z.b. Lame, wohl einer der bekannteren.

Das Codieren möchte ich direkt in meinem Programm realisieren. Also nicht als WAV speichern, und dann einen Prozess mit dem Konverter starten.

Da habe ich nun aber so meine Probleme:
Wie füge ich die ganze Lame Bibliothek meinem Projekt hinzu ?
Das ganze kommt ja mit eigenen Makefiles. Ich habe mal die Lame.exe mit mingw32 gebaut, funktioniert auch, nur wenn ich selber den Hauptheader lame.h meinem Projekt hinzufüge (und alle anderen dateien der lib), dann krieg ich das nicht gebacken bzw. weiss nicht wie ich das machen soll......
Momentan entwickle ich auf Windows, das ganze soll aber ohne Tamtam auch auf Linux laufen.

Sorry, wahrscheinlich ist das ne saudumme Frage. Eigentlich bin ich fit mit Qt/C++, Programmieren i.A..
Aber irgendwie habe ich mich um solche Themen bisher immer herumgewurschtelt, ohne das wirklich zu kapieren :-/
Wäre cool wenn mir jemand helfen kann.
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Beitrag von skeemo »

Niemand ne Idee, wie ich externe Bibliotheken dazu linke ?
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Beitrag von ScyllaIllciz »

Im *.pro File:
INCLUDEPATH += /path/to/include/
LIBS += -L/path/to/lib/ -ldeinelib
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Beitrag von skeemo »

Nee, das geht auch nicht.

Könnte sich jemand nicht mal die Lame Sourcen runterladen und das ausprobieren ? Sind blos 2 MB, kann ich aber nicht anhängen :

http://sourceforge.net/projects/lame/fi ... z/download

Man soll den Header "lame.h" aus dem Verzeichnis /include einbinden.

Methodenaufrufe wie lame_init() gehen aber nicht, weil es dann (eigentlich logisch) undefined reference fehler gibt, da in lame.h nur Prototypen stehen.

Das ist echt enorm wichtig für mich gerade.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Man muss die lame-Library schon erstmal erstellen bevor man gegen sie linken kann.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Beitrag von skeemo »

Ja das ist genau der Punkt.

Das bekomme ich nicht gebacken.

*shame*
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Beitrag von ScyllaIllciz »

Welches Betriebssystem, welcher Compiler?
Ich gehe von Windows aus, da unter Linux nur das richtige Paket installiert werden muss.
Wenn Windows MSVC, dann schau mal in den Ordner vc_solution. Dort sind alle Solutions hinterlegt, sodass Du die nur noch öffnen musst und dann kompilieren kannst.
Wenn Windows mingw32, dann in der msys console "./configure && make && make install".
skeemo
Beiträge: 39
Registriert: 8. Oktober 2010 09:39

Beitrag von skeemo »

Also ich habs hinbekommen.

Man kann mit MingW32 unter Windows das Unix Makefile benutzen und einfach mit mingw32-make.exe den Build starten.
Die libmp3lame.a wird dann auf jeden Fall mitgebaut und lässt sich dann wie oben (danke @ScyllaIllciz) einbinden.

Danke :)
Antworten