SCons:获取原始文件的绝对路径(就好像我没有设置variant_dir一样)

2023-12-27

我可以用File('foo.bar').abspath获取文件的位置,但如果我设置了variant_dir,则返回的路径将位于variant_dir而不是原始位置。如果我有duplicate=0设置,那么返回的文件实际上并不存在。

显然 SCons 知道原始文件在哪里,因为它是在文件实际构建时作为参数传递的(例如gcc -c -o variant/foo.o orig/foo.c).

有没有某种File('foo.bar').origpath我可以用吗?

如果到了我可以使用os.path.join(Dir('#').abspath, 'orig')但这需要 SConscript 知道它位于哪个目录,这很混乱。


您可以使用srcnode() http://www.scons.org/doc/latest/HTML/scons-api/SCons.Node.FS.Base-class.html#srcnode。引用man page http://www.scons.org/doc/2.0.1/HTML/scons-man.html:

srcnode() 方法返回另一个 代表的文件或目录对象 给定文件或目录的源路径。

这将为您提供源目录中的绝对路径:

File('foo.bar').srcnode().abspath
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SCons:获取原始文件的绝对路径(就好像我没有设置variant_dir一样) 的相关文章

  • 如何在 scons 中每次构建后运行一些代码?

    我正在寻找一种方法来注册诸如 scons 中的最终构建回调之类的东西 例如 我现在正在做这样的事情 def print build summary failures SCons Script GetBuildFailures notifyE
  • SCons 在 Windows 中启动超慢

    长期以来 我在使用 SCons 进行构建时一直饱受启动时间过长的困扰 在我的旧工作笔记本电脑上 构建最基本的 hello world 示例可能需要长达 60 秒的时间 我刚刚收到一台新笔记本电脑 所以我有机会进一步调查这一点 我们的笔记本电
  • 在 scons 'Program' 命令中使用 'LIBS' 找不到静态库,为什么?

    我有一个 n c 作为主函数 o c 作为导入函数 如下所示 cat n c o c int f int main f return 0 include
  • 使用 Python subprocess.call() 启动 ncurses 进程

    我正在尝试致电 ct ng http crosstool ng org 来自 SCons SConstruct 脚本 所以基本上来自 Python 使用以下方法 ret subprocess call mnt build pw build
  • 如何根据编译器类型在 C 编译器的 SConstruct 中设置选项?

    我需要为 C 编译器设置附加选项 例如添加标志以打开所有警告 具体取决于编译器的类型 例如 对于 MSVC 我应该使用 env Append CPPFLAGS Wall 但对于 mingw gcc 我需要使用 env Append CCFL
  • COBOL 的 Scons

    我想在 scons 中创建一个与 COBOL 一起使用的构建器 这是一个开始 import re Import env Source src cpy COPYBK1 cpy src cpy COPYBK2 cpy src cpy COPYB
  • 如何告诉 scons 使用 C++11 标准

    我无法找到如何告诉 scons 接受 c 11 标准 SConstruct 文件 env Environment CPPPATH usr include boost CPPDEFINES LIBS SCONS CXX STANDARD c
  • 为什么 clang 在 Scons 下不显示颜色输出?

    使用 Scons 构建时 我可以将其配置为使用 clang 如下所示 env CXX clang 但是 它似乎没有保留 clang 输出的颜色信息 我怎样才能让 scons 保留颜色 根据铿锵文档 http clang llvm org d
  • SCONS 运行目标

    我一直在寻找 寻找 但找不到我的问题的答案 我今晚刚刚开始学习 scons 看起来棒极了 不过我遇到了一点困惑 为了便于开发 我经常喜欢让我的 make 文件构建我的目标 然后运行它 以便我可以通过一次按键来测试更改 这在 make 文件中
  • 如何将交叉编译器与 Scons 一起使用?

    遵循建议关于斯康斯常见问题解答 http www scons org wiki FrequentlyAskedQuestions Why doesn 27t SCons find my compiler 2BAC8 linker 2BAC8
  • SCons - 非标准位置的标头/库

    我正在尝试使用 SCons 编译一个程序 该程序需要一组我已安装在非标准位置的依赖项 我已将依赖项安装在 home dja ocr 中 现在我正在尝试编译主程序 但不知道如何告诉 SCons 在哪里查找库和标头 我已经尝试过 除其他外 sc
  • scons 知道 SConscript 文件位于哪个目录吗?

    我们正在评估 scons 作为构建系统 但我在适应我们的旧系统时遇到了问题 在我们的一些源代码子目录中 我们有一个 sources lib 文件 其中列出了需要编译以组装该目录的目标库的 C 文件的名称 但是 同一目录中还有其他 C 文件
  • SCons 不会清除所有文件

    我有一个包含 builds 目录的文件系统 每个目录都包含一个名为 build info xml 的文件 然而 一些构建发生在构建脚本生成 build info xml 之前 因此在这种情况下 我有一个有点不平凡的 SCons SConst
  • 告诉 SCons 不要自动创建目录?

    我正在尝试让 SCons 查看我需要的 git 存储库 并希望使该存储库保持最新 问题是我必须告诉它 git 存储库包含哪些文件才能在构建中使用它们 如果我这样做 SCons 将在尝试克隆存储库之前创建存储库 例如 假设我想克隆 GStre
  • SCons 长命令行 TEMPFILE 与 MinGW

    我正在尝试在 Windows 上使用 SCons 和 MinGW 从 gcc 和 gfortran 对象构建共享库 但在最终链接期间命令行太长 超过 18000 个字符 我知道我需要使用临时文件 响应文件 来传递命令行 但我找不到让 SCo
  • 如何在 scons 中添加 --whole-archive 链接器选项?

    我有一个仅在静态范围内与应用程序交互的库 这需要我将库与 whole archive选项以避免链接器 优化 库 这样做是因为链接器实际上从未看到我的库正在被使用 问题是我还没有找到为 scons 中的特定库添加此链接器选项的方法 env A
  • Scons:仅当目标发生更改时才生成版本文件

    我需要从 SCons 脚本生成 version cc 文件 仅当目标的任何源文件发生更改时才应生成此文件 假设 SCons 脚本有以下语句 python function which generates version cc in the
  • 需要帮助调试缓慢的 scons 运行时

    我正在使用 scons 构建两个项目 一个项目效果很好 而另一个 更复杂 项目则非常令人沮丧 这是我在为第二个项目运行 scons 时看到的内容 S time scons scons Reading SConscript files lt
  • 如何解决 CheckLib 返回 false 的问题?

    Scons版本是2 3 3 这是构建脚本的相关部分 if not conf CheckLib portaudio raise Exception Did not find libportaudio a portaudio lib or th
  • 如何设置 scons 系统包含路径

    使用 scons 我可以轻松设置我的包含路径 env Append CPPPATH foo 这传递了标志 Ifoo to gcc 不过 我正在尝试在启用大量警告的情况下进行编译 特别是与 env Append CPPFLAGS Werror

随机推荐

  • android Q/10 连接到没有互联网的 SSID 时无法解决主机“URL”问题

    我有一些无法访问互联网的 SSID 我正在尝试从 Android 应用程序以编程方式连接它 尽管没有互联网 但我应该使用该 SSID 进行一些 api 调用 下面一切正常安卓Q版本 Android Q 版本存在一些问题 我正在使用 Retr
  • 为什么这个依赖类型不被视为使用模板参数的专业化?

    我试图将专业化分组在一起以避免多次编写它们 例如 在下面的代码中 我尝试将 float 和 double 专门化作为 foo func 的实现的一种情况 然后我使用 bool 的另一个实现 template
  • 在 Flex 4 中使用 HTTPS Web 服务

    我正在尝试在 Adob e Flash Builder 中使用一项 HTTPS Web 服务 当我添加 URL 时 出现此错误 服务期间出现错误 内省 WSDL异常 故障代码 OTHER ERROR 无法 解析导入的文档 https 172
  • 蟒蛇 |如何使用 Tkinter 进行快速反应测试?

    我尝试使用 Python 中的 Tkinter 模块制作一个快速反应测试器 但是当我单击Start按钮 它只是冻结窗口 我不知道如何恢复 这是我的代码 import webbrowser as wb import time import m
  • 使用 SQL 关键字作为列的别名

    我正在执行以下查询 但它给出语法错误 因为关键字key已在 SQL 中注册 SELECT id AS key country name AS value FROM countries 我也尝试过使用这样的括号 但它不起作用 SELECT i
  • 使用 Gradle 访问私有 Maven Github 包注册表

    我在用户下有一个私人存储库X和存储库名称Y https github com X Y https github com X Y 这是一个使用 Gradle 构建的 Java 项目 Gradle配置文件已经按照官方说明进行配置Github 包
  • 更改视角会导致弹出错误,调试视角不再起作用

    刚刚安装了 Eclipse Juno 从那时起就遇到了透视问题 除了编辑器窗口非常小并且仅限于显示的一个角落 在调试中 在 Java 透视图中没问题 之外 我在更改透视图时也会遇到错误 建议 如果我不能解决这个问题 我就会回到 Indigo
  • 如何在 ipython 笔记本中启用换行

    我一直在尝试在 ipython 笔记本中启用换行 我用谷歌搜索没有结果 然后我在终端中输入了 ipython notebook help 这为我提供了大量配置文件的配置命令 但没有换行 有谁知道 ipnotebook 是否有此功能 如果有如
  • 使用 os_unfair_lock_lock 进行快速访问竞争

    我制作了一个自定义属性包装器 它提供了一种使用互斥上下文访问数据的方法os unfair lock 在启用 TSAN 的情况下测试我的包装器后 在使用以下命令获取锁时报告了访问争用错误os unfair lock lock 如下图所示 不知
  • 如何配置每个 pod/进程使用不同的 kafka 主题分区

    我有一个有 5 个分区的 kafka 主题 我当前有 5 个 pod 正在使用这 5 个分区 但是 由于特定需求 我需要每个 Pod 仅从其分配的分区中进行消费 但由于 pod 在 kubernetes 上都具有相同的配置 我无法告诉每个
  • 组件和子组件

    我是 Vue js 新手 在使用带有子组件的组件时遇到了一些问题 我有以下内容 vue files app vue
  • 如何在 ActiveAdmin 视图中使用在控制器中定义的实例变量?

    我有这个 ActiveAdmin register User do controller do def show user User find params id show end end show do attributes table
  • 无法通过cmd运行C程序

    大家好 我正在学习 C 正在尝试弄清楚如何通过命令控制台 cmd 运行它 我已经安装了 eclipse 和 Mingw 并将它们添加到路径中 C MinGW bin C MinGW msys 1 0 bin 我在 notepad 上编写了这
  • 使用单个 Helm Chart 部署多个服务

    我是 helm 和 kubernetes 的新手 我当前的要求是使用通用舵图设置多个服务 这是场景 我有一个适用于所有服务的通用 docker 映像 对于每个服务 都需要运行不同的命令 总共有40多项服务 Example pipenv ru
  • 如何在 Visual Studio 中查找特定类的重载运算符的所有引用?

    如果我有一个包含重载 运算符函数的类 我如何找出整个代码中使用该重载运算符的位置 除了在重载的 方法中放置一个断点并查看代码是否命中它之外 我尝试转到 Visual Studio 中的类视图 右键单击该方法 然后选择 查找所有引用 但它声称
  • 在Excel中连接多个匹配项

    请看下面 我想将表 2 中的 注释 连接到表 1 中 如一系列图像所示 而不使用 TEXTJOIN 或宏 仅使用常规 Excel 函数 不使用 UDF 或辅助列就没有简单的解决方案 我建议使用 UDF 公式 它很容易在工作表中实现和使用 要
  • Vba 从互联网下载文件 WinHttpReq 登录不起作用

    我一直在寻找一种解决方案来自动从网站下载 csv 表 但我还没有找到可行的解决方案 如果我使用 IE 或 Chrome 在上次登录后输入网址 文件会自动开始下载 为此 我有另一种方法通过 IE 和 HTML 对象通过导航然后保存来实现我所需
  • 如何使 C-p 成为 Devel::PerlySense 的 Emacs 前缀键?

    我刚刚安装开发 PerlySense http search cpan org dist Devel PerlySense 0 0180 我已将以下内容放入我的 emacs 文件中 PerlySense load perly sense g
  • 滑动菜单 - 从右到左

    我正在尝试使用下面示例中的滑动菜单 https github com eddieringle android undergarment https github com eddieringle android undergarment 但这
  • SCons:获取原始文件的绝对路径(就好像我没有设置variant_dir一样)

    我可以用File foo bar abspath获取文件的位置 但如果我设置了variant dir 则返回的路径将位于variant dir而不是原始位置 如果我有duplicate 0设置 那么返回的文件实际上并不存在 显然 SCons