我正在尝试构建一个使用 CMake 构建系统的包(即 libebur128),它依赖于pkg-config
在系统中找到所需的包。
在构建所需的库之后,我发现 CMake 能够找到其中一个,但不能找到其他库,尽管它们是以相同的方式构建的。
我怎么知道出了什么问题?有没有办法输出它正在做的测试或者它是如何pkg-config
用来定位包的?pkg-config
因为每次找到所有必要的包时手动使用都会起作用。
这是用于定位某些内容的 CMake 脚本之一,在本例中为 libmpg123:
find_package(PkgConfig)
pkg_check_modules(PC_MPG123 QUIET libmpg123)
find_path(MPG123_INCLUDE_DIR mpg123.h
HINTS ${PC_MPG123_INCLUDEDIR} ${PC_MPG123_INCLUDE_DIRS})
find_library(MPG123_LIBRARY NAMES mpg123 mpg123-0
HINTS ${PC_MPG123_LIBDIR} ${PC_MPG123_LIBRARY_DIRS})
set(MPG123_LIBRARIES ${MPG123_LIBRARY})
set(MPG123_INCLUDE_DIRS ${MPG123_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MPG123 DEFAULT_MSG MPG123_LIBRARY MPG123_INCLUDE_DIR)
mark_as_advanced(MPG123_INCLUDE_DIR MPG123_LIBRARY)
注意:我正在为 Windows 进行交叉编译,以防万一,我使用的是 MinGW-w64 工具链,并且我已经调整pkg-config
了路径以查看它应该在哪里。