【问题标题】:C++ preprocessor path rootC++ 预处理器路径根
【发布时间】:2011-01-27 09:01:41
【问题描述】:

是否可以使用 C++ 预处理器处理文件路径?

我想要的是这个 GETROOT( __FILE__ ) 扩展到 \\myserver\myshare\

假设文件的路径类似于\\myserver\myshare\folder\folder\file.txt

我在 Windows XP 上使用 mcpp

【问题讨论】:

  • 这似乎是 stackoverflow.com/questions/1591873/… 的副本 我个人会使用 makefile 方法,但这取决于您的构建系统
  • @David Ashmore 我明白你为什么这么说,但问题是在不同的环境中,在这两种情况下,都没有现场解决方案。

标签: c++ c-preprocessor filepath


【解决方案1】:

取决于编译器,预处理器在 GCC/Microsoft 等上的行为略有不同。 没有符合标准的方法来做到这一点..

在 Windows 上,您可能会尝试使用构建环境变量。 Visual Studio 可以将这些值($(SolutionDir) 等)公开给预处理器上下文。只需添加一个预处理器值,如 ROOT_PATH="$(SolutionDir)"(C/C++ -> 项目设置中的预处理器)。

【讨论】:

    【解决方案2】:

    不,它不是,至少不是以标准方式。我不能肯定地说世界上没有编译器可以做到这一点,但这似乎不太可能。

    什么用例意味着您无法在运行时执行此操作?

    【讨论】:

    • 我正在使用预处理器为 DSL 处理文件,因此输出不是 C++。
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 2015-06-18
    • 2020-05-21
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多