我对CMake很新,但是我将移植现有的库存在问题。 为了简化,我只处理2个文件:angle.cpp和angle.h。 这些文件是这样的:
/cmaketest/CMakeLists
/cmaketest/src/angle.cpp
/cmaketest/src/angle.h
我将运行CMake并在/ cmaketest /.
中生成Makefile我的CMakeLists目前正是这个:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(cmaketest)
SET(cmaketest_SRCDIR src)
AUX_SOURCE_DIRECTORY(${cmaketest_SRCDIR} cmaketest_SOURCES)
FILE(GLOB cmaketest_HEADERS ${cmaketest_SRCDIR}/*.h )
ADD_EXECUTABLE(cmaketest ${cmaketest_SOURCES} ${cmaketest_HEADERS})
但问题是在angle.cpp中,标题不是"angle.h"
而是<src/angle.h>
因此,使用当前的cmake文件,执行make时会出现以下错误:
/cmaketest/src/angle.cpp:1:23:致命错误:src / angle.h:找不到文件
如何解决问题? (为了向后兼容,我不能修改.cpp文件中的<src/angle.h>
)
非常感谢。
答案 0 :(得分:2)
尝试使用include_directories命令将项目目录添加为include目录:
...
file (GLOB cmaketest_HEADERS ${cmaketest_SRCDIR}/*.h )
include_directories(${CMAKE_SOURCE_DIR})
add_executable(cmaketest ${cmaketest_SOURCES} ${cmaketest_HEADERS})