我如何从通过在 SConscript 中运行 perl 脚本自动生成的文件构建静态库

发布于 2024-10-30 17:51:17 字数 261 浏览 4 评论 0原文

这是我需要在 scons 中做的事情,目前我无法让它正常工作。

首先,我需要运行 perl 脚本 1。这会生成一系列 cpp 文件。 然后我需要运行 perl 脚本 2。这会生成另一系列的 cpp 文件。 然后我需要获取由于执行 2 个 perl 脚本而创建的 cpp 文件,并从中构建一个静态库。

我使用自定义构建器来执行 perl 脚本。我不想手动定义目标列表,因为这可能会根据 perl 脚本用来生成源文件的文件而改变。

任何帮助将不胜感激。 谢谢, D

Here is what i need to do in scons, and at present I'm not able to get this to work correctly.

Firstly I need to run perl script 1. This generates a series of cpp files.
Then I need to run perl script 2. This generates another series of cpp files.
Then I need to take the cpp files that have been created as a result of executing the 2 perl scripts and build a static library from them.

I use a custom builder to execute the perl scripts. I don't want to manually define the target list, as this can change depending on the file that the perl scripts uses to generate the source files.

ny help would be much appreciated.
Thanks,
D

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

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

发布评论

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

评论(1

廻憶裏菂餘溫 2024-11-06 17:51:17

要运行 perl 脚本,您只需要使用标准 python 代码:

import subprocess
subprocess.call(['perl', ...args...])

要构建静态库,请尝试如下操作:

env = Environment()
env.StaticLibrary('example', Glob('*.cpp'))

其中 Glob('*.cpp') 生成所有 .cpp 的列表 文件。如果您已经有一些自定义环境,只需在我的示例中使用 is 而不是 env

For running the perl scripts you just need to use standard python code:

import subprocess
subprocess.call(['perl', ...args...])

For building static lib, try something like this:

env = Environment()
env.StaticLibrary('example', Glob('*.cpp'))

where Glob('*.cpp') generates a list of all .cpp files. If you already have some customized environment just use is instead of env in my sample.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文