1

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

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 环境的问题,也不是项目本身的代码问题。

4

1 回答 1

1

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

于 2015-09-24T12:33:57.490 回答