使用gcc链接libsndfile源代码

时间:2018-05-28 10:51:24

标签: c gcc libsndfile

我刚刚克隆了libsndfile并使用以下内容创建了program.c文件:

#include <stdio.h>
#include <sndfile.h>
main() {
    printf("hello world");
}

我的目标是使用gcc来编译这个文件(如果sndfile.h确实包含了正确的标题),但是,我不能胜任c代码和gcc编译器。

到目前为止,我一直在引用gcc docslibsndfile FAQ并且已经能够提出解决方案。我不确定我是否有一个&#39;库&#39;尚未提供gcc -l选项。我是否需要首先使用libsndfile源代码完成某种构建过程,或者我可以链接&#39;到.c文件?

到目前为止,使用program.c和同一目录中的libsndfile clone目录,我尝试了以下内容:

gcc 'pkg-config --cflags libsndfile' program.c -o hello
gcc 'pkg-config --cflags ./libsndfile/sndfile.pc.in' program.c -o hello

我在我的覆盆子pi模型B上进行编码并且没有安装libsndfile,因此,我的路径上没有任何内容...也许我应该将sndfile.pc.in重命名为sndfile.pc并以某种方式将其放在我的路径? (也不是linux大师!)

如果您认为我应该学习一些资源请评论!我完全愿意接受那些只是让我足以解决问题的答案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先确保您已安装 gcc

sudo apt-get install gcc

然后,安装 libsndfile1-dev

sudo apt-get install libsndfile1-dev

我稍微修正了你的代码以避免一些警告:

#include <stdio.h>
#include <sndfile.h>

int main(void) {
  printf("hello world\n");
  return 0;
}

现在可以编译了:

gcc -o hello program.c

执行:

bebs@rasp:~$ ./hello                                     
hello world                                                                              
bebs@rasp:~$