【问题标题】:How can I put $(SRCROOT) into a string?如何将 $(SRCROOT) 放入字符串中?
【发布时间】:2012-11-19 15:44:36
【问题描述】:

或者有没有其他方法可以将项目的目录变成一个字符串?这个我试过了

const char* filepath = std::getenv("SRCROOT");

但文件路径显示为空,但它适用于其他环境变量。 SRCROOT 是否有某种代码内别名?我不能只使用“../”,我需要字符串中的完整路径。

【问题讨论】:

  • 执行环境中可能没有定义SRCROOT。
  • int i = 0; while(environ[i]) { printf("%s\n", environ[i++]); }
  • 环境从何而来?
  • 有什么要求?
    __FILE__ 很有用。

标签: c++ xcode4 environment-variables


【解决方案1】:

我发现的最佳选择是根据 ${SRCROOT} 环境变量在项目属性的Other C Flags 下定义宏。方法如下:

您可以在您的 C/C++ 代码中使用 SRCROOT 作为常量字符串。

【讨论】:

    【解决方案2】:

    至于 项目的 目录,请检查您的 IDE 文档中的环境变量。它可能有一个翻译,会用项目的 目录创建一个宏。

    可执行文件的目录通常可以从main函数的第一个参数传递获得。

    否则项目目录,尤其是目录结构,是平台相关的。一些平台,比如嵌入式系统,没有目录,只有内存。有关详细信息,请咨询您的操作系统。

    作为替代方案,您可以让您的构建系统在命令行上将项目名称作为define 传递。其他想法是创建环境变量或配置文件;一切都应该由构建系统来完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 2019-08-14
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多