在OS X 10.8.2上,我有macports并已安装:
glib2
pkg-config
等等。我运行的cmake尝试使用pkg-config来查找glib2。正在运行pkg-config --libs glib-2.0
:
-L/opt/local/lib -lglib-2.0 -lintl
和--cflags
:
-I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include
然而,当我尝试使用;
或:
)以及各种组合(或者当我尝试下载gtk并使用glib2 dirs)输入这些内容时(单独或全部)那个:cmake抱怨它找不到目录:
checking for module 'gstreamer-0.10'
found gstreamer-0.10, version 0.10.36
checking for module 'glib-2.0'
found glib-2.0, version 2.34.3
CMake Error at /Applications/CMake 2.8-10.app/Contents/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (message):
Could NOT find GLib2 (missing: GLIB2_LIBDIR GLIB2_INCLUDE_DIRS)
Call Stack (most recent call first):
/Applications/CMake 2.8-10.app/Contents/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindGLib2.cmake:127 (find_package_handle_standard_args)
cmake/Modules/FindGStreamer.cmake:12 (find_package)
CMakeLists.txt:32 (find_package)
我看到this page与MonoDevelop有冲突的pkg-config
。我卸载了Mono,没有任何其他我能找到的pkg-config二进制文件,并且没有运气就清除了cmake缓存。我查看了cmake的细节,并查找了那些目录中的glib.h和glibconfig.h。为什么它不能表现出来?
答案 0 :(得分:1)
尝试使用此文件:http://svn.opensync.org/branches/3rd-party-cmake-modules/modules/FindGLIB2.cmake
在主CMakeLists.txt文件中,输入以下行:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/helper/")
这假设上面的FindGLIB2.cmake存储在src的目录/ helper中。
此文件的内容将有助于CMake更好地找到GLIB2。
此链接可帮助您了解这些文件的工作原理:http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries#Writing_find_modules
答案 1 :(得分:0)
我在 wireshark-3.4.2
上使用 cmake
从源代码构建 Centos8.2/RHEL8.2
时遇到了这个问题。错误是
Could NOT find GLIB2 (missing: GLIB2_LIBRARY GLIB2_MAIN_INCLUDE_DIR GLIB2_INTERNAL_INCLUDE_DIR) Required is at least version "2.32.0")
虽然我的系统已经预装了 glib-2.56.4
解决方案:安装了 glib2-devel
包。然后cmake正确找到了glib-2.0。
cmake 输出看起来像:
-- Checking for one of the modules 'glib-2.0'
-- Found GLIB2: /usr/lib64/libglib-2.0.so (found suitable version "2.56.4", minimum required is "2.32.0")