scons - 源/包含路径

发布于 2024-09-07 16:58:57 字数 275 浏览 3 评论 0原文

假设我有这个目录结构:

  • SConstruct
  • src/
    • a.cpp
    • b.cpp
  • 包含/
    • bh

在 SConstruct 中我不想每次都指定 ['src/a.cpp', 'scr/b.cpp'] ;我正在寻找某种方法将基本源目录设置为“src”,

有什么提示吗?我一直在研究文档但找不到任何有用的东西

Let's say I have this directory structure:

  • SConstruct
  • src/
    • a.cpp
    • b.cpp
  • include/
    • a.h
    • b.h

in SConstruct I don't want to specify ['src/a.cpp', 'scr/b.cpp'] every time; I'm looking for some way to set the base source directory to 'src'

any hint? I've been looking into the docs but can't find anything useful

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

简单 2024-09-14 16:59:02

有几个选项供您选择:

首先,scons 喜欢使用 SConscript 文件作为子目录。将 SConscript 放入 src/ 中,它可以引用本地文件(并且也会在构建子目录中生成输出)。您可以在 SConstruct 中设置环境一次。然后,您从主 SConstruct 中“加载”SConscript。

SConscript('src/SConscript')

随着项目的增长,管理子目录中的 SConscript 文件比将所有内容放入主 SConstruct 中更容易。

其次,这里有一个类似的问题/答案可能会有所帮助 - 它使用 Glob 和一个非常简单的例子。

第三,由于它只是 python,因此您可以创建一个不带前缀的文件列表,并使用列表理解来构建真正的列表:

file_sources = [ 'a.c', 'b.c' ]
real_sources = [os.path.join('src', f) for f in file_sources]

A couple of options for you:

First, scons likes to use SConscript files for subdirectories. Put an SConscript in src/ and it can refer to local files (and will generate output in a build subdir as well). You can set up your environment once in the SConstruct. Then you "load" the SConscript from your master SConstruct.

SConscript('src/SConscript')

As your project grows, managing SConscript files in subdirectories is easier than putting everything in the master SConstruct.

Second, here's a similar question / answer that might help -- it uses Glob with a very simple example.

Third, since it's just python, you can make a list of files without the prefix and use a list comprehension to build the real list:

file_sources = [ 'a.c', 'b.c' ]
real_sources = [os.path.join('src', f) for f in file_sources]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文