将两个目录合并到一个虚拟目录中用于编译/别名包含目录
Merging two directories into one virtual directory for compilation / aliasing include directories
我的代码必须在同一项目中的两个可执行文件之间共享(一个构建命令将构建它们)。此代码包含#ifdef
预处理器语句,这些语句改变了它在每个项目中的工作方式(使用命令行宏定义作为开关)。
源是abstract,因为有些标题丢失了。例如,共享文件Application.cpp
可能包含一个名为gui/MainWindow.h
的文件,该文件不存在于共享目录中,但存在于可执行源目录中。或者它可能包含一个名为gui/Local.h
的文件,该文件确实存在于共享目录中。
本质上,我需要gui
路径是两个位置的组合。
在unix上,我以前只是通过设置一系列文件链接来实现这一点,但是这个项目现在将windows作为目标(Visual Studio)。此外,我知道如何使用共享目录结构和设置编译器包含开关来做到这一点,但我希望有一个更简单的方法。
任何想法?
我使用CMake生成构建,使用GCC和Visual Studio作为编译器。
我已经看过为预处理器定义一个目录,但不幸的是,#include
指令不能组合几个令牌来创建文件名。一个单独的名字可以工作,这可能是一个选项,让cmake为所有共享的文件名吐出宏。
我真的认为最简单的解决方案是使用包含路径-为不同的项目设置不同的路径。查看属性表以在项目之间共享设置,并大大简化管理。
如果你在unix中使用文件链接,你也可以在Windows中使用符号链接。
相关文章:
- 良好做法:如何定义用于编译的外部库的路径
- 我的 PowerShell 脚本无法按预期工作(用于编译C++文件)
- 仅用于编译时参数禁用函数
- 编译器用于编译 128 位整数的基本算术运算的技巧
- CMakelists.txt用于编译HDF5
- 即使Visual Studio 14 2015 Win64工具链已启用,也将32位工具链用于编译
- 引脚类似工具,用于编译时注入检测代码
- GCC可以用于编译到自定义平台吗
- 用于编译可以相互包含的不同"modules"的生成文件
- 用于编译内核模块以包含树外源文件的生成文件
- 用于编译 c 和 cpp 文件的生成文件
- 一个生成文件,用于编译指定目录中的所有源代码
- 生成文件,用于编译所有子目录中的所有 CPP 文件
- 如何使用cmake脚本从命令行选择用于编译C++代码的xcode版本
- 可以用于编译Windows Vista或7的代码
- Makefile用于编译多个带有不同标志的源文件
- 用于编译的路径更新
- 是否有替代LLVM的库,用于编译特定的IR到架构特定的代码
- 为什么链接器在linux中用于编译的路径中搜索库
- 打印Visual Studio用于编译文件的整个命令