linux - 在 SConstruct 中运行复制命令不起作用
问题描述
当我想在 Linux 平台上复制文件时,使用这个 SConstruct 文件:
Command('/lib64/'+ tbbLibNames[i] , tbb_dylibs + '/' + tbbLibNames[i], Copy("$TARGET", "$SOURCE"))
它没有生效。但是当我将命令移动到 SConscript 时,它就会生效。
请告诉我为什么。
解决方案
由于您的目标在/lib64/
运行 scons 时不在当前目录(很可能)下(子目录),因此默认情况下不会构建它。
如果您未在 scons 命令行上指定目标,则默认目标是.
所以尝试以下方法:
scons /lib64
那应该行得通。
此外,如果您希望默认构建该目标(当您没有在命令行上明确指定目标时(如上),您可以使用以下
targets = Command('/lib64/'+ tbbLibNames[i] , tbb_dylibs + '/' + tbbLibNames[i], Copy("$TARGET", "$SOURCE"))
Default(targets)
我猜根据复制目标的位置,您可能希望有一个名为install
如果是这样,您可以执行以下操作
targets = Command('/lib64/'+ tbbLibNames[i] , tbb_dylibs + '/' + tbbLibNames[i], Copy("$TARGET", "$SOURCE"))
Alias('install',targets)
然后你会导致 scons 通过
scons install
另一种选择是将上面的 Copy() 作为发布操作添加到构建这些 tbbLibNames 的任何内容中。AddPostAction()
请参阅:https ://scons.org/doc/production/HTML/scons-man.html#f-AddPostAction
推荐阅读
- powerbi - 根据 Power bi 本身中的特定表连接三个表
- php - 如何在 HTML 表单上显示 PHP 从数据库中获取数据?
- java - 使用 JOOQ 创建动态主键约束
- java - Eclipse IDE 中的设计选项卡为空白
- android - android将recyclerview项目位置传递给对话框按钮监听器
- reactjs - 在 Reactjs 中使用 map 复制对象
- javascript - 使用 Google Cloud Functions 抓取时 page.evaluate 不返回响应?
- javascript - 开玩笑抛出错误 SyntaxError: Unexpected identifier
- javascript - React.js 如何在组件内循环和渲染组件?
- php - 如何使 mail() 消息间距