我已经使用CMake构建了libpng,并将它生成的.pc
文件添加到了pck-config的目录中。
需要libpng的项目无法构建,因为pkg-config在调用时会提供错误的路径,例如pkg-config --cflags libpng
调试输出:
$ pkg-config.exe --debug libpng
no output option set, defaulting to --exists
Error printing disabled by default due to use of output options --exists, --atleast/exact/max-version, --list-all or no output option at all. Value of --print-errors: 0
Error printing disabled
Adding virtual 'pkg-config' package to list of known packages
Looking for package 'libpng'
Looking for package 'libpng-uninstalled'
Reading 'libpng' from file 'C:\mingw64\mingw64\lib\pkgconfig\libpng.pc'
Parsing package file 'C:\mingw64\mingw64\lib\pkgconfig\libpng.pc'
line>prefix=C:/Program Files (x86)/libpng
Variable declaration, 'prefix' overridden with 'C:/mingw64/mingw64'
line>exec_prefix=C:/Program Files (x86)/libpng
Variable declaration, 'exec_prefix' has value 'C:/Program Files (x86)/libpng'
line>libdir=C:/Program Files (x86)/libpng/lib
Variable declaration, 'libdir' has value 'C:/mingw64/mingw64/lib'
line>includedir=C:/Program Files (x86)/libpng/include/libpng16
Variable declaration, 'includedir' has value 'C:/mingw64/mingw64/include/libpng16'
line>
line>Name: libpng
line>Description: Loads and saves PNG files
line>Version: 1.6.37
line>Requires: zlib
line>Libs: -L${libdir} -lpng16
line>Libs.private: -lz -lm
Unknown keyword 'Libs.private' in 'C:\mingw64\mingw64\lib\pkgconfig\libpng.pc'
line>Cflags: -I${includedir}
Path position of 'libpng' is 3
Adding 'libpng' to list of known packages
手册指出:
Windows专业]
如果在与常规约定匹配的目录中找到一个.pc文件(即,以\ lib \ pkgconfig结尾),则该软件包的前缀被假定为找到该文件的目录的祖父母,并且相应地,该文件的prefix变量将被覆盖。
但是,
${prefix}
文件中没有任何.pc
。我不知道替换物来自哪里以及如何修复它们。报告仅覆盖prefix
,其余报告“具有值”,但打印的路径不是文件中声明的路径,甚至不存在。
我已经使用CMake构建了libpng,并将它生成的.pc文件添加到了pck-config的目录中。需要libpng的项目无法生成,因为pkg-config在调用时会提供错误的路径,例如pkg -...