CMake无法找到glog。

4
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7 FATAL_ERROR)

INCLUDE(FindPackageHandleStandardArgs)

FIND_LIBRARY(GLOG_LIBRARY glog)
FIND_PATH(GLOG_INCLUDE_DIR "glog/logging.h")

SET(GLOG_LIBRARIES ${GLOG_LIBRARY})

FIND_PACKAGE_HANDLE_STANDARD_ARGS(
  Glog
  REQUIRED_ARGS GLOG_INCLUDE_DIR GLOG_LIBRARY)

这是cmake文件。我已经在/apps/glog中安装了google glog 0.3.4。但是,编译该文件时为什么还会出现以下错误?我检查了,glog/logging.h位于0.3.4/include/glog/目录下。
CMake Error at cmake/FindGlog.cmake:77 (MESSAGE):
  Failed to find glog - Could not find glog include directory, set
  GLOG_INCLUDE_DIR to directory containing glog/logging.h
Call Stack (most recent call first):
  cmake/FindGlog.cmake:103 (GLOG_REPORT_NOT_FOUND)
  CMakeLists.txt:27 (FIND_PACKAGE)

1
命令find_path在一些系统目录下搜索所需文件(glog/logging.h)。我猜测,目录/apps/glog/0.3.4/不是系统目录之一,因此默认情况下不会搜索该目录。当调用cmake时,您可以通过设置CMAKE_PREFIX_PATH变量来提示CMake关于此目录的信息:cmake -DCMAKE_PREFIX_PATH=/apps/glog/0.3.4 ... - Tsyvarev
是的..我之前使用的系统每次想要使用库时,都必须从“应用程序”中加载它。而且所有的库都由管理员管理。我不太理解这个机制。但我认为这是主要问题。我会尝试您的方法。 - hidemyname
2个回答

2

现在Glog(提问后最多四年)已支持CMake!他们在这里有非常好的文档:https://github.com/google/glog#cmake

但这是你应该做的要点:

cmake_minimum_required (VERSION 3.0.2)
project(myproj VERSION 1.0)

find_package(glog 0.6.0 REQUIRED)

add_executable(myapp main.cpp)
target_link_libraries(myapp PRIVATE glog::glog)

就像其他任何表现良好的,支持CMake的库一样!

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接