我刚刚克隆了libsndfile并使用以下内容创建了program.c文件:
#include <stdio.h>
#include <sndfile.h>
main() {
printf("hello world");
}
我的目标是使用gcc来编译这个文件(如果sndfile.h确实包含了正确的标题),但是,我不能胜任c代码和gcc编译器。
到目前为止,我一直在引用gcc docs和libsndfile 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大师!)
如果您认为我应该学习一些资源请评论!我完全愿意接受那些只是让我足以解决问题的答案。任何帮助将不胜感激。
答案 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:~$