CMake链接包含<src header.h =“”> </src>形式的标题的问题

时间:2011-08-07 16:53:20

标签: linker cmake

我对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>

非常感谢。

1 个答案:

答案 0 :(得分:2)

尝试使用include_directories命令将项目目录添加为include目录:

...
file (GLOB cmaketest_HEADERS ${cmaketest_SRCDIR}/*.h )

include_directories(${CMAKE_SOURCE_DIR})
add_executable(cmaketest ${cmaketest_SOURCES} ${cmaketest_HEADERS})