私はcmakeでこのコードを持っています:
#mandatory
SET(BOOST_DIR "$ENV{BOOST_HOME}")
if (DEFINED ${BOOST_DIR})
#global include directories
include_directories(${BOOST_DIR})
else(DEFINED ${BOOST_DIR})
message( STATUS "BOOST_HOME at ${BOOST_DIR}")
message( FATAL_ERROR "Undefined BOOST_HOME env var.")
endif(DEFINED ${BOOST_DIR})
環境変数 BOOST_HOME が定義されています (/home/ferran/boost)。出力が次のようになるため、動作は非常に奇妙です。
-- BOOST_HOME at /home/ferran/boost
CMake Error at CMakeLists.txt:14 (message):
Undefined BOOST_HOME env var.
-- Configuring incomplete, errors occurred!
それで、変数は存在し、その内容を出力し、同時に存在しませんか?