2009-07-01 4 views
12

Tengo esta biblioteca llamada BASS que es una biblioteca de audio que voy a utilizar para grabar con el micrófono. Tengo todos los archivos necesarios para usarlo, pero no sé cómo instalar la biblioteca. Intenté tomar los archivos de ejemplo y ponerlos en el mismo directorio que el archivo bass.h. Pero tengo un montón de errores que dicen que hay llamadas a funciones que no existen.¿Cómo instalo una biblioteca de C++ para poder usarla?

Entonces mi pregunta es, ¿cómo la instalo para poder usarla?

+0

¿Qué compilador/IDE usas? ¿Es Visual Studio, DevC++, Code :: Block, cualquier otra cosa? – kkaploon

+0

La mayoría de las bibliotecas vienen con proyectos de muestra. ¿Has seguido las instrucciones para construir uno de estos? –

+1

@kkaploon, uso eclipse CDT con MinGW como mi compilador. – rzetterberg

Respuesta

9

Instalación de una biblioteca C++ medios que especifican al software interesa la ubicación de dos tipos de archivos (por ejemplo, un compilador.): Las cabeceras (extensiones típicas * .h o .hpp) y objetos compilados ( .dll o * .lib por ejemplo).

Los encabezados contendrán las declaraciones expuestas al desarrollador por los autores de la biblioteca, y su programa #incluirá en su código fuente, el dll contendrá el código compilado que será enlazado y utilizado por su programa, y serán encontrados por el enlazador (o cargados dinámicamente, pero este es otro paso).

Así que hay que

1) put the header files in a location which your compiler is aware of (typically IDE allows to set so-called include directories, otherwise you specify a flag like "-I<path-to-headers>" when invoking the compiler) 
2) put the dll files in a location which your linker is aware of (surely your IDE will allow that, otherwise you speficy a flag like "-L<path-to-libraries> -l<name-of-libraries>" 

Por último, pero no menos importante, ya que veo que la biblioteca BASS es un producto comercial, probablemente habrán puesto a disposición algunas instrucciones de instalación?

1

Si hay archivos llamados configure, Makefile o install, puede intentar ejecutarlos en ese orden. Después de eso, cualquier programa que quiere vincular con esta biblioteca debe utilizar un comando como este:

c++ <your_program.cpp> -l<library_name> -L<path_where_library_is_installed> 

La ruta de la biblioteca es por lo general la carpeta original de la biblioteca en sí, a menos que cambie de forma explícita o la propia biblioteca pone sus archivos en ubicaciones globales como /usr/local o algo así.

+1

Como especifica Windows MinGW, esto no parece tan claro para un principiante ... – Francesco

4

Vea el código a continuación y no se olvide de poner bass.dll en el directorio de su archivo exe e incluya el archivo bass.lib con su proyecto y no olvide incluir también la ruta a bass.h y bajo .lib en la ruta predeterminada de inclusión y lib de su proyecto.

#include <iostream> 
#include "bass.h" 

using namespace std; 

int main(int argc, const char **argv) 
{ 
    if (!BASS_Init(-1, 44100, 0, NULL ,NULL)) 
    { 
    cout<<"Can't initialize device"; 
    return -1; 
    } 

      int stream = BASS_StreamCreateFile(false, "D:\\mypro\\Trans_Langs\\germ\\quran_amma\\Translations\\Sound_aya\\Sora1\\Hafs\\basfar\\a7.mp3", 0L, 0L, 0); 
      if (stream != 0) 
      { 
       // play the stream channel 
       BASS_ChannelPlay(stream, false); 
      } 
      else 
      { 
       // error creating the stream 
       cout<<"Stream error: {0}", BASS_ErrorGetCode(); 
      } 

    getchar(); 

      BASS_StreamFree(stream); 
      // free BASS 
      BASS_Free(); 

return 0; 
} 
0

Ejecute este comando en un terminal o consola.

cpp -v 

Aviso al final de la salida, verá una línea como esta:

#include<...> search starts here: 

Habrá una lista de directorios por debajo de esa línea. Mueva la carpeta del paquete a uno de esos directorios. Luego intente importar el módulo con <>.

Cuestiones relacionadas