วิธีการแก้ไขข้อผิดพลาด“ PKG_PROG_PKG_CONFIG: ไม่พบคำสั่ง”


13

ฉันมีระบบ Ubuntu 13.10 32 บิต เมื่อเร็ว ๆ นี้เมื่อฉันพยายามที่จะรวบรวมโดยการทำงาน./autogen.shและ./configureฉันได้รับ

 PKG_PROG_PKG_CONFIG: command not found

ความผิดพลาด ฉันlibtoolติดตั้งแล้ว ฉันมีสามไฟล์ aclocal ในusr/share/ทำนองalocalเดียวกันaclocal-1.13และaclocal-1.4

ฉันจะแก้ไขข้อผิดพลาด alocal ได้อย่างไร?

แก้ไข:

บางครั้งที่ผ่านมาฉันรวบรวม automake เวอร์ชันล่าสุดจากแหล่งที่มาและติดตั้งเพราะซอร์สโค้ดต้องการ automake รุ่นล่าสุดเพื่อเรียกใช้กระบวนการกำหนดค่า ตั้งแต่นั้นมาเมื่อใดก็ตามที่ฉันเรียกใช้มาตรฐาน./autogenและ/configureคำสั่งในไดเรกทอรีต้นทางเพื่อสร้างmakefileฉันจะได้รับ

  PKG_PROG_PKG_CONFIG: command not found

ความผิดพลาด

  find /usr -name "pkg.m4"

ให้ฉัน

  /usr/share/aclocal/pkg.m4

และ

  aclocal --print-ac-dir

ให้ฉัน

  /usr/local/share/aclocal

เป็นpkg-configแพคเกจติดตั้ง? ไฟล์นั้น/usr/share/aclocal/pkg.m4มีอยู่ในระบบของคุณ?
ขับขี่เหล็ก

คุณพยายามรวบรวมอะไร
jobin

@steeldriver find /usr -name "pkg.m4"ให้ฉัน/usr/share/aclocal/pkg.m4
kenn

@Jobin ฉันกำลังพยายามรวบรวมนี้: codeload.github.com/blazt/submarine/zip/master
เคนน์

สิ่งที่ไม่aclocal --print-ac-dirพูด?
steeldriver

คำตอบ:


18

PKG_PROG_PKG_CONFIGตัวแปรหมายถึงแมโครpkg.m4ที่มีให้เป็นส่วนหนึ่งของแพคเกจ pkg-config ดังนั้นสิ่งแรกที่ต้องตรวจสอบคือว่า pkg-config การติดตั้งและว่าแฟ้มแมโครอยู่ในตำแหน่งเริ่มต้น (และสามารถอ่านได้แน่นอน)

dpkg -l pkg-config

ls -l /usr/share/aclocal/pkg.m4

หากตรวจสอบแล้วคำถามจะกลายเป็นสาเหตุที่aclocalไม่พบหรือไม่ คุณสามารถตรวจสอบว่าaclocalมีการกำหนดค่าให้ค้นหาไฟล์ m4 ของบุคคลที่สามโดยใช้--print-ac-dirสวิตช์เช่น

aclocal --print-ac-dir

หากไม่ตรงกับที่ตั้งด้านบนแสดงว่ามี automake รุ่นที่ไม่ได้มาตรฐานในระบบของคุณ - หากคุณไม่สามารถแก้ไขปัญหานั้นได้วิธีแก้ปัญหาที่เป็นไปได้คือการตั้งค่าหรือส่งออกACLOCAL_PATHตัวแปรสภาพแวดล้อมก่อนเรียกใช้ autogen sh สคริปต์เช่น

ACLOCAL_PATH=/usr/share/aclocal ./autogen.sh

หรือ

export ACLOCAL_PATH=/usr/share/aclocal
./autogen.sh
./configure

ดูที่ส่วนพา ธ การค้นหามาโครของ GNU automake manual


หรือPKG_PROG_PKG_CONFIGอาจจะมาจากการพิมพ์ผิดในการกำหนดตัวแปรเช่นแทนPKG_PROG_PKG_CONFIG<space>=... ในไฟล์ของคุณ PKG_PROG_PKG_CONFIG=...grep "PKG_PROG_PKG_CONFIG "
waltinator
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.