CMake:无法打开头文件

标签 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 环境或项目本身代码的问题。

最佳答案

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

关于CMake:无法打开头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591626/

相关文章:

c - 指针类型转换

cmake - 在 FindXXX.cmake 的 XXX_INCLUDE_DIRS 或 XXX_LIBRARIES 中指定多个路径

cmake - undefined symbol : _ZN3a13A when importing pybind11 bindings

c - 将字节重新解释为 C 中的 float (IEEE 754 单精度二进制)

c++ - 让软件中断在裸机 Beaglebone Black 中工作

c - 如何利用Linux的虚拟串口让C程序与Python程序通信?

c - 服务器编程错误

c - C编译中断

cmake - 在子目录中调用project()

c - 在 Code Composer Studio 中编译时出错 - Tiva C 系列