ジャック(Linux用のオーディオサーバー)に関するこの入門チュートリアルに従おうとしています。チュートリアルでは、著者はジャックpkg-config
を見つけるためにcflags
andを使用する必要があることを説明し、コマンドを次のようにします。libs
gcc
gcc -o simple_client `pkg-config --cflags --libs jack` simple_client.c
出力は次のとおりです。
/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
上記のチュートリアルでは、著者は、ジャック用にリンクされるライブラリを収集するための同じ方法を示していますが、彼の出力は次のようになります。
-ljack -lpthread -ldl -lrt
pthread が何かはわかりませんが、dl は dsp-loader であり、rt はリアルタイムと関係があると思います。と呼ばれるいくつかのディレクトリを検索しましたが/lib
、これらの他のライブラリについて何も見つけていないため、それらが私のマシンに存在するとは思いません。pkg-config
しかし、呼び出してもそれらについて何も言及されていないのは奇妙に思えます。これらのライブラリを見つけるにはどうすればよいですか? それとも私は間違った道を進んでいますか?