将libsndfile源代码与gcc链接

tyg4sfes  于 2023-02-11  发布在  其他
关注(0)|答案(2)|浏览(129)

我刚刚克隆了libsndfile并创建了包含以下内容的program.c文件:

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

我的目标是使用gcc编译这个文件(如果sndfile. h确实是要包含的正确头文件),但是,我不擅长c代码,也不擅长gcc编译器。
到目前为止,我一直在参考gcc docslibsndfile FAQ,还没有能够拿出一个解决方案。我不确定 * 我是否有一个“库”来提供gcc -l选项 *。我需要先通过一些libsndfile源代码的构建过程,还是可以“链接”到.c文件?
到目前为止,在program.c和libsndfile克隆目录位于同一目录的情况下,我尝试了以下方法:

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

我在我的raspberry pi模型B上编码,没有安装libsndfile,所以,我的路径上没有任何东西...也许我应该将www.example.com重命名sndfile.pc.in为sndfile.pc,然后以某种方式将它放在我的路径上?(也不是linux大师!)
如果你认为我应该学习一些资源,请发表意见!我非常愿意接受简单地推动我足够弄清楚事情的答案。任何帮助都将不胜感激。

fhg3lkii

fhg3lkii1#

首先确保您已经安装了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:~$
zbwhf8kr

zbwhf8kr2#

@alpereira7答案的一个小补充。没有它的库会导致链接失败。gcc -lsndfile -o hello program.c应该是一个100%的解决方案。

相关问题