如何安装C++库以便使用?

55

我有一个名为BASS的音频库,我想用它来录制麦克风。 我已经拥有了使用该库所需的所有文件,但我不知道如何安装这个库。我尝试将示例文件放在与bass.h文件相同的目录中,但是我收到了大量错误,指出存在不存在的函数调用。

因此,我的问题是,如何安装它以便能够使用它?


你使用哪个编译器/集成开发环境?是Visual Studio、Devc++、Code::Block还是其他的? - kostia
大多数库都附带有示例项目。您是否按照说明构建了其中一个? - anon
2
@kkaploon,我使用Eclipse CDT和MinGW作为我的编译器。 - rzetterberg
4个回答

47
安装C++库意味着告诉相关软件(如编译器)两种文件的位置:头文件(典型扩展名*.h或.hpp)和编译对象(例如.dll或*.lib)。

头文件将包含库作者向开发人员公开的声明,您的程序将在其源代码中#include它们,dll将包含已编译的代码,该代码将被链接并由您的程序使用,并由链接器找到(或动态加载,但这是另一步骤)。

因此,您需要:

  1. 将头文件放置在编译器知道的位置(通常IDE允许设置所谓的包含目录,否则在调用编译器时指定标志如-I<path-to-headers>
  2. 将dll文件放置在链接器知道的位置(肯定您的IDE会允许这样做,否则可以指定标志如 -L<path-to-libraries> -l<name-of-libraries>

最后 but not least,因为我看到BASS库是商业产品,他们可能提供了一些安装说明?


7
如果我开发了一个库,应该在客户机的哪里安装它?特别是,在Windows上,与/usr/include/usr/lib等价的标准路径是什么? - Sam

15

在终端或控制台中运行此命令。

cpp -v

请注意,输出结果的末尾会出现这样一行内容:

#include<...> search starts here:

下面将列出一系列目录,将包文件夹移动到其中一个目录中。然后尝试使用 <>. 导入模块。


4
在运行 cpp -v 后,终端会进入一种编辑模式,我不知道如何退出。请问你能告诉我们如何在输入 cpp -v 后退出编辑模式吗? - Jason
1
对于任何遇到麻烦的人:Ctrl+C(在其他情况下,您也可以尝试使用“q”)。 - Dan

6
请看下面的代码,并不要忘记将bass.dll放在您的exe文件目录中,并在您的项目中包含bass.lib文件,也不要忘记在默认的包含和库路径中包含bass.h和bass.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;
}

1
如果有名为configureMakefileinstall的文件,您可以尝试按照这个顺序运行它们。之后,任何想要链接到这个库的程序都必须使用类似于以下命令的命令:

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

库路径通常是原始库文件夹本身,除非您明确更改它或库本身将其文件放在全局位置(如/usr/local)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接