CMake:无法打开头文件

时间:2015-09-15 16:56:58

标签: c cmake code-composer

我正在使用cmake构建Code Composer Studio项目,这对我来说是新的。它在Linux下成功构建,但我很难让它在Windows下运行。 cmake命令执行没有问题,但make在第一个#include的第一个C对象期间失败,错误代码为

fatal error: could not open source file "stdbool.h" (no directories in search list)

我正在使用CCS编译器(c6000_7.4.15)中包含的库,整个文件夹都包含在CSS项目中。我也把它包含在cmake中。在我的.cmake文件中:

set (CCS_ROOT ${CCS_ROOT_V6_WIN} CACHE PATH "code composer install directory")
set(CGT_COMPILER_ROOT ${CCS_ROOT}/tools/compiler/c6000_7.4.15 CACHE INTERNAL "DSP Compiler Root")`

在CMakeLists.txt文件中:

set (COMPILER_INCLUDE ${CGT_COMPILER_ROOT}/include)
INCLUDE_DIRECTORIES ("${COMPILER_INCLUDE}")

为什么在项目中链接头文件时不能打开头文件,而且CMake可以很好地找到它们?

编辑:目录结构已在我下面进行了更改,因此我借此机会将所有外部文件直接添加到项目中,使其完全独立于平台。这样,由于项目由我们的Git存储库管理,用户不必安装CSL或任何其他程序来构建项目。这也意味着库和头文件的路径永远不会在修订版和环境之间发生变化。

不幸的是,这还没有解决我的问题。该项目继续在Linux中构建,但未能成为第一个包含的头文件。我还注意到,在Windows下,它找不到我自己的头文件,除非我提供相对路径,例如#include "../Common.h"如果我提供了编译器目录的绝对路径,那么我可以make找到stdbool.h,但这会在文件之间公开一系列额外的断开链接。

作为旁注,该项目在Code Composer Studio中成功构建,因此我假设这不是我的特定Windows环境的问题,也不是项目本身的代码。

1 个答案:

答案 0 :(得分:1)

这似乎是gcc.exe的一个问题。我在我的构建脚本中将环境变量CC设置为不同编译器(在我的情况下是TI编译器)的路径,并修复了问题。