스크립트를 실행할 때 makefile의 pkg-config 명령이 인식되지 않는 이유는 무엇입니까?

스크립트를 실행할 때 makefile의 pkg-config 명령이 인식되지 않는 이유는 무엇입니까?

pkg-config오픈소스 프로젝트를 위해 Debian 가상머신에서 make를 실행하려고 하는데 make에 기반한 명령이 왜 인식되지 않는지 모르겠습니다 .

명령 중 하나는 다음과 같습니다.

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

이 두 가지 문제(패키지 누락 및 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셸에서 다양한 명령을 실행하여 제대로 작동하는지 확인하고 각 오류에 대한 정보를 얻을 수 있습니다.

관련 정보