スクリプトを実行するときにmakefileのpkg-configコマンドが認識されないのはなぜですか?

スクリプトを実行するときにmakefileのpkg-configコマンドが認識されないのはなぜですか?

pkg-configオープンソースプロジェクトのためにDebian仮想マシンでmakeを実行しようとしていますが、makeベースのコマンドがなぜ認識されないのかわかりません。

コマンドの1つは次のとおりです。

tempgui-qrps.so: tempgui-qrps.cc refpersys.hh tempgui-qrps.hh tempgui-qrps.moc.hh | $(RPS_CORE_OBJECTS)
    $(RPS_BUILD_CXX) $(RPS_BUILD_COMPILER_FLAGS) \
                         -shared -o $@ -fPIC -Wall -Wextra -O -g \
                  $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets $(RPS_PKG_NAMES)) \
                  $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets $(RPS_PKG_NAMES)) \
                      -std=gnu++17 \
    $<

コマンドラインからmakeを実行すると、上記のコマンドに対応する出力は次のようになります。

g++ -std=gnu++17 \                          
    -shared -o tempgui-qrps.so -fPIC -Wall -Wextra -O -g \                
                                  \                
                                   \                      
                                    -std=gnu++17 \ 
tempgui-qrps.cc 

make コマンドを実行すると、次の警告も表示されます。

Package readline was not found in the pkg-config search path.
Perhaps you should add the directory containing `readline.pc'
to the PKG_CONFIG_PATH environment variable
No package 'readline' found
Package zlib was not found in the pkg-config search path.
Perhaps you should add the directory containing `zlib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'zlib' found

これら2つの問題(パッケージの欠落とpkg-config未処理のコマンド)が関係していますか?

私のシステムのインストールに関するいくつかの詳細pkg-configは次のとおりです。

xxxxx@xxxx:~$ pkg-config --version
0.29

xxxx@xxxx:~$ whereis pkg-config
pkg-config: /usr/bin/pkg-config /usr/lib/pkg-config.multiarch /usr/share/man/man1/pkg-config.1.gz

答え1

それを持つだけでは十分ではありません。各コマンドで指定されたパッケージに対応するファイルpkg-configも必要です。.pcpkg-config

なぜなら、にあるパッケージだけでなく、必要なすべてをインストールするpkg-config --cflags Qt5Core Qt5Gui Qt5Widgets $(RPS_PKG_NAMES)必要があるからです。特定のファイルを含むパッケージをインストールして使用することができます。qtbase5-dev$(RPS_PKG_NAMES)apt-file

readlineとの場合とzlibが必要です。また、Debian 10を使用している場合は、次のコンテンツを作成する必要があります。libreadline-devzlib1g-devreadline.pc/usr/local/lib/pkgconfig

prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib/x86_64-linux-gnu
includedir=${prefix}/include

Name: Readline
Description: Gnu Readline library for command line editing
URL: http://tiswww.cwru.edu/php/chet/readline/rltop.html
Version: 7.0
Requires.private: tinfo

(のためのamd64)。

pkg-configシェルでさまざまなコマンドを実行して、正常に動作していることを確認し、各エラーに関する情報を取得できます。

関連情報