程序编译提示找不到头文件的解决方法

在编写的源程序中,使用cmake进行编译,提示OpenNI.h:no such file or directory

我安装的openNI安装在/opt目录下,在home目录下的.bashrc文件中已经添加了系统环境变量

export OPENNI2_INCLUDE="/opt/OpenNI/OpenNI-Linux-x64-2.2/Include"
export OPENNI2_REDIST="/opt/OpenNI/OpenNI-Linux-x64-2.2/Redist"

在工程的CMakeList.txt中,内容如下:

CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
PROJECT( testKinect1 )

SET( CMAKE_CXX_COMPILER "g++" )
SET( CMAKE_BUILD_TYPE Release )
SET( CMAKE_CXX_FLAGS "-O3 -std=c++11" )
SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin )
SET( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib )

INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include ${OPENNI2_INCLUDE} ${OPENNI2_REDIST} 
                )
LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib )

ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src )

后来发现在cmake中,${}这种形式的引用是引用的cmake的环境变量,而不是系统的环境变量,这里实际上应该用系统的环境变量,所以需要使用 $ENV{},这样cmake引用的才是系统的环境变量。修改之后,编译通过。

你可能感兴趣的:(cmake,Ubuntu)