我正在使用 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/