2009-07-01 150 views
12

我有這個庫叫BASS這是一個音頻庫,我將用它來記錄麥克風。我有使用它所需的所有文件,但我不知道如何安裝該庫。我試着把示例文件放在與bass.h文件相同的目錄中。但是我收到了一堆錯誤,說有不存在的函數調用。如何安裝C++庫以便我可以使用它?

所以我的問題是,我該如何安裝它才能使用它?

+0

你使用什麼編譯器/ IDE?它是Visual Studio,DevC++,Code :: Block,還有什麼? – kkaploon 2009-07-01 15:00:54

+0

大多數圖書館都帶有示例項目。你有沒有遵循指示建立其中之一? – 2009-07-01 15:02:34

回答

9

安裝C++庫手段指定給感興趣的軟件兩種文件的位置(例如,編譯器):標題(典型擴展的* .h或.HPP)和編譯對象(的.dll或*的.lib例如)。

標題將包含庫作者向開發者公開的聲明,並且你的程序將#include它們的源代碼,dll將包含編譯後的代碼,這些代碼將被鏈接在一起並被程序使用,並且它們將被鏈接器找到(或者動態加載,但這是另一步)。

所以,你需要

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>" 

最後但並非最不重要的,因爲我看到BASS庫是一個商業產品,或許他們將提供一些安裝說明?

1

如果有文件名爲configure,Makefileinstall您可以嘗試按順序運行它們。在此之後,要與此庫鏈接任何程序必須使用這樣的命令:

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

庫路徑通常是原來的庫文件夾本身,除非你明確地更改或本身就是將在其檔案庫像/usr/local或類似的東西。

4

請參閱下面的代碼代碼,不要忘記將bass.dll放入exe文件的目錄中,並將bass.lib文件包含在您的項目中,並且不要忘記包含bass.h和bass的路徑.lib中默認包含和lib路徑的項目。

#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

在終端或控制檯中運行此命令。

cpp -v 

在輸出結束的通知,你會看到這樣一行:

#include<...> search starts here: 

會有那麼線下的目錄列表。 將包文件夾移到其中一個目錄。 然後嘗試導入模塊<>。

相關問題