【问题标题】:CMake problem of linking with headers included of the form <src/header.h>与 <src/header.h> 形式包含的标题链接的 CMake 问题
【发布时间】:2011-08-07 16:53:20
【问题描述】:

我对 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"包含,而是由&lt;src/angle.h&gt;包含

所以对于当前的 cmake 文件,当我执行 make 时出现以下错误:

/cmaketest/src/angle.cpp:1:23: 致命错误: src/angle.h: 找不到文件

如何解决问题? (为了向后兼容,我无法在 .cpp 文件中修改 &lt;src/angle.h&gt;

非常感谢。

【问题讨论】:

    标签: linker cmake


    【解决方案1】:

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

    ...
    file (GLOB cmaketest_HEADERS ${cmaketest_SRCDIR}/*.h )
    
    include_directories(${CMAKE_SOURCE_DIR})
    add_executable(cmaketest ${cmaketest_SOURCES} ${cmaketest_HEADERS})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      相关资源
      最近更新 更多