如何在不扩展的情况下基于 RHIDE 中的环境变量添加包含目录
How to add an include directory based on environment variable in RHIDE without expansion?
REDHAWK IDE 在创建Makefile.am.ide
文件时坚持扩展环境变量。例如,假设$SRC_ROOT
/srcpath
,我在项目的 C/C++ 部分的Path and Symbols
窗口中添加一个包含路径,如下所示:
${env_var:SRC_ROOT}/include
生成的Makefile.am.ide
文件包含:
rehawk_INCLUDES_auto = -I/srcpath/include
当我真正想要的是:
rehawk_INCLUDES_auto = -I$(SRC_ROOT)/include
这很重要,因为此文件由具有不同值的其他团队成员使用$SRC_ROOT
。目前我们必须将包含路径放在 Makefile.am
中,但是 IDE 在目录中看不到头文件,并且看到缺少的头文件中引用的代码的错误。
有没有办法获得RHIDE,在生成Makefile.am.ide
时不扩展环境变量?
不完全是您要找的,但您可以随时通过禁用 REDHAWK C++自动包含构建器来禁用 Makefile.am.ide 的自动更新。这位于"构建器"部分的项目属性中。
这将允许您添加到 Eclipse 的路径和符号部分,而无需自动包含构建器拾取它并将其添加到您的 Makefile.am.ide 中。
如果您选择禁用此构建器,则需要自行管理新源文件的添加。
> Youssef的答案还不错,但我想出了一种不同的方法来解决这个问题。在 Makefile.am
中,将 redhawk_INCLUDES_auto
值覆盖为 I 是什么:
include $(srcdir)/Makefile.am.ide
#Override the value from Makefile.am.ide that may be wrong!
override redhawk_INCLUDES_auto = -I$(SRC_ROOT)/include
这要求更新 IDE 和Makefile.am
文件中的任何自定义包含目录,但管理源文件仍然是自动的。
它仍然存在一个问题,即Makefile.am.ide
文件的内容对于其他开发人员来说会有所不同,这使版本控制复杂化。所以我不认为这是这个问题的完整答案。
相关文章:
- 枚举环境变量的惯用C++14/C++17方法
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 定义C++新的环境变量并在 bat 文件中使用它
- docker 构建失败:无法设置环境变量
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- C++环境变量
- 在编译时为运行时设置环境变量
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 访问 PlatformIO 中的外部环境变量
- WSL 看不到环境变量
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 注册 TBB 的环境变量
- 如何设置Qt应用程序以使用类Unix系统的实际环境变量?
- CMake 看不到SDL2_PATH环境变量 (Windows)
- 跨语言共享环境变量
- 什么是运行英特尔线程构建模块的 XCode 8 环境变量
- 在运行时将更改的环境变量应用于 QApplication
- 在C++程序中找不到环境变量 UID
- Visual Studio 2017 C++,如何定义一个"环境变量"'Additional Library Directory'?
- 如何在不扩展的情况下基于 RHIDE 中的环境变量添加包含目录