Audio 对“jack\u client\u close”等的未定义引用

Audio 对“jack\u client\u close”等的未定义引用,audio,gcc,linker,jack,Audio,Gcc,Linker,Jack,我正试图学习有关jack(linux音频服务器)的入门教程。在本教程中,作者解释说您应该使用pkg config查找jack的cflags和libs,使gcc命令如下: gcc -o simple_client `pkg-config --cflags --libs jack` simple_client.c -ljack -lpthread -ldl -lrt 它给出了输出: /tmp/ccyuOC0u.o: In function `signal_handler': simple_cli

我正试图学习有关jack(linux音频服务器)的入门教程。在本教程中,作者解释说您应该使用
pkg config
查找jack的
cflags
libs
,使
gcc
命令如下:

gcc -o simple_client `pkg-config --cflags --libs jack` simple_client.c
-ljack -lpthread -ldl -lrt
它给出了输出:

/tmp/ccyuOC0u.o: In function `signal_handler':
simple_client.c:(.text+0x16): undefined reference to `jack_client_close'
/tmp/ccyuOC0u.o: In function `process':
simple_client.c:(.text+0x6f): undefined reference to `jack_port_get_buffer'
simple_client.c:(.text+0x87): undefined reference to `jack_port_get_buffer'
/tmp/ccyuOC0u.o: In function `main':
simple_client.c:(.text+0x25b): undefined reference to `sin'
simple_client.c:(.text+0x2c1): undefined reference to `jack_client_open'
simple_client.c:(.text+0x372): undefined reference to `jack_get_client_name'
simple_client.c:(.text+0x3b1): undefined reference to `jack_set_process_callback'
simple_client.c:(.text+0x3ca): undefined reference to `jack_on_shutdown'
simple_client.c:(.text+0x3ee): undefined reference to `jack_port_register'
simple_client.c:(.text+0x419): undefined reference to `jack_port_register'
simple_client.c:(.text+0x475): undefined reference to `jack_activate'
simple_client.c:(.text+0x4c5): undefined reference to `jack_get_ports'
simple_client.c:(.text+0x514): undefined reference to `jack_port_name'
simple_client.c:(.text+0x52c): undefined reference to `jack_connect'
simple_client.c:(.text+0x56e): undefined reference to `jack_port_name'
simple_client.c:(.text+0x586): undefined reference to `jack_connect'
simple_client.c:(.text+0x5ba): undefined reference to `jack_free'
collect2: ld returned 1 exit status
我对使用gcc或编写c程序不是很有经验(我的大部分经验都是使用javascript、clojure、java、python和php)。我从这篇文章和我对它的研究中得出的结论是,一些库丢失或链接错误(不确定是哪一个)

在我的机器上运行
pkg config--cflags--libs jack
,我得到:

-ljack
在上面提到的教程中,作者演示了为jack收集要链接的LIB的相同方法,但他的输出如下所示:

gcc -o simple_client `pkg-config --cflags --libs jack` simple_client.c
-ljack -lpthread -ldl -lrt

不确定pthread是什么,但我认为dl是dsp加载程序,rt与实时性有关。我在几个名为
/lib
的目录中搜索过,但没有找到其他lib的任何内容,因此我认为我的机器上不存在这些lib。然而,调用
pkg config
却没有提到它们,这对我来说似乎很奇怪。我应该如何找到这些LIB?还是我走错了方向?

您的链接命令行错误,请尝试以下命令行:

gcc -o simple_client simple_client.c `pkg-config --cflags --libs jack`

命令行上存档库的顺序错误。

您的链接命令行错误,请尝试以下命令行:

gcc -o simple_client simple_client.c `pkg-config --cflags --libs jack`

命令行上存档库的顺序。

此命令有效吗:
gcc-o simple_client$(pkg config--cflags--libs jack)-ljack-lpthread-ldl-lrt simple_client.c
?您介意使用运行上述gcc命令时得到的错误编辑日志吗?这将是调试出错情况的有用信息。输出与ls-l/usr/lib/libjack的输出相同。因此*,或者如果您的系统有一个
/usr/lib64
,并且您正在运行64位
ls-l/usr/lib64/libjack。那么*
?我似乎没有这些选项。我自己有
/lib64
,它不包含libjack。所以*,我有
/usr/lib/
,但没有libjack任何东西,我有
/usr/lib32
,同样没有libjack任何东西。这个命令行吗:
gcc-o simple_client$(pkg config--cflags--libs-jack)-ljack-lpthread-ldl-lrt simple_client.c
?您介意使用运行上述gcc命令时得到的错误编辑帖子吗?这将是调试出错情况的有用信息。输出与ls-l/usr/lib/libjack的输出相同。因此*,或者如果您的系统有一个
/usr/lib64
,并且您正在运行64位
ls-l/usr/lib64/libjack。那么*
?我似乎没有这些选项。我自己有
/lib64
,它不包含libjack。所以*,我有
/usr/lib/
,但没有libjack,我有
/usr/lib32
,同样没有libjack