You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake新增自定义FOO语言时include_directories不生效如何解决?

问题根因

你未配置自定义FOO语言的头文件包含前缀变量,CMake无法识别需要给include_directories指定的路径添加-I前缀,导致路径直接被当成普通编译输入参数传入,既触发了 unused 警告,也没有实际生效为头文件搜索路径。

修改步骤

只需在CMakeFOOInformation.cmake中添加FOO语言的包含前缀配置即可:

  1. 打开CMakeFOOInformation.cmake,在include(CMakeCommonLanguageInclude)语句后新增以下配置:
# 指定FOO语言头文件包含路径的参数前缀
set(CMAKE_FOO_INCLUDE_FLAG "-I")
# 指定前缀与路径之间的分隔符,clang类编译器用空格即可
set(CMAKE_FOO_INCLUDE_FLAG_SEP " ")

修改后的CMakeFOOInformation.cmake开头部分示例:

include(CMakeCommonLanguageInclude)

# 新增的包含路径配置
set(CMAKE_FOO_INCLUDE_FLAG "-I")
set(CMAKE_FOO_INCLUDE_FLAG_SEP " ")

if(UNIX)
  set(CMAKE_FOO_OUTPUT_EXTENSION .o)
else()
  set(CMAKE_FOO_OUTPUT_EXTENSION .obj)
endif()

# 其余原有配置保持不变
验证方法

修改完成后删除原有构建目录,重新执行cmake生成构建文件,编译时加VERBOSE=1参数查看编译命令,确认test.foo的编译参数中已经携带-I/home/FOO_20210731/operations/include项即可。

可选优化:你当前CMakeDetermineFOOCompiler.cmake中find_program用了~/out/install/bin路径,CMake不会自动展开波浪号为用户家目录,建议替换为$ENV{HOME}/out/install/bin避免后续编译器查找失败问题。

内容的提问来源于stack exchange,提问作者yao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:54:02