12 Stimmen

Wie funktioniert CHECK_INCLUDE_FILE_CXX in CMake?

Der folgende Code gibt nichts aus

CHECK_INCLUDE_FILE_CXX(glog/logging.h GLOG_INCLUDE)
IF(GLOG_INCLUDE)
   MESSAGE("YY")
ENDIF(GLOG_INCLUDE)

Aber ich habe die folgende Umgebungsvariable gesetzt:

export CPLUS_INCLUDE_PATH=/usr/local/include

Und "ls /usr/local/include/glog/logging.h" gibt die Datei zurück.

Ich habe es mit

include_directories( "/usr/local/include" )

aber GLOG_INCLUDE bleibt danach undefiniert (logging.h bleibt nicht gefunden.)

12voto

Unknown Punkte 5466

Werfen Sie einen Blick auf die CheckIncludeFileCXX.cmake. Sie sollte sich in einem Verzeichnis Ihrer cmake-Installation befinden (ich habe sie in /usr/share/cmake-2.8/Modules).

In dieser Datei steht:

# The following variables may be set before calling this macro to
# modify the way the check is run:
#
#  CMAKE_REQUIRED_FLAGS = string of compile command line flags
#  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
#  CMAKE_REQUIRED_INCLUDES = list of include directories
#  

Sie können also versuchen, diese Variable zu setzen, bevor Sie den Befehl aufrufen, etwa so:

set (CMAKE_REQUIRED_INCLUDES "/usr/local/include")
CHECK_INCLUDE_FILE_CXX(glog/logging.h GLOG_INCLUDE)
IF(GLOG_INCLUDE)
   MESSAGE("YY")
ENDIF(GLOG_INCLUDE)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X