问题标签 [scons]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使用 scons,如何链接到预建库?
我最近开始使用 scons 构建几个小型跨平台项目。其中一个项目需要链接到预先构建的静态库......这是如何完成的?
在 make 中,我只需在 windows 上附加“link /LIBPATH:wherever libstxxl.lib”,在 unix 上附加“stxxl.a”。
visual-c++ - 致命错误 C1083:无法打开包含文件:“Windows.h”:和 scons
今天是我正式使用 C++ 的第一天 :P
我已经下载了 Visual C++ 2005 Express Edition 和 Microsoft Platform SDK for Windows Server 2003 SP1,因为我想接触开源Enso Project。
因此,在安装 scons 后,我进入控制台并尝试使用 scons 进行编译,但出现此错误:
检查这些链接后:
我设法像这样配置我的安装:
甚至运行这个脚本
我设法在IDE中编译了下面的文件。
但我仍然在控制台中得到那个异常。有人有scons经验吗?
编辑
实际上(我忘了告诉你这一点)我使用“Visual Studio 2005 命令提示符”链接启动了命令提示符。
我假设这将包括环境变量中的路径。好吧,在打印它们之后,我发现它没有:
他们不存在,所以我创建了这个 .bat 文件:
尽管如此,scons 似乎不接受 vars ... :(
python - 从python加载dll
我正在从我在这里找到的一些源代码构建一个 python 应用程序
我已经设法通过搜索网络来编译和修复一些问题,但我被困在这一点上:
运行应用程序时会出现此消息。
替代文字 http://img511.imageshack.us/img511/4481/loadfr0.png
这个 python 应用程序使用 swig 链接到 c/c++ 代码。
我有 VC++2005 速成版,我用它与 scons 和 Python 2.5 一起编译(也尝试过 2.4)
试图加载的 dll 是“msvcr80.dll”,因为在消息是“msvcr80.dll”之前找不到或类似的东西,所以我得到它并将它放在 window32 文件夹中。
对于我在这里读到的内容:http: //msdn.microsoft.com/en-us/library/ms235591 (VS.80).aspx
解决方案是使用清单和 dll 文件运行 MT。我已经这样做了,也不起作用。
谁能指出我正确的方向?
这是清单文件的内容:
我现在要尝试 Python 2.6,我不太确定是否理解这个问题,但是 Python 2.5 和 Python 2.5 .exe 在 .exe 文件中有字符串“MSVCR71.dll”。但这可能无关紧要。
附言。如果一切都像 jar 文件一样简单:(
这是完整性的堆栈跟踪
build-process - 在 scons 中检测 CPU 架构(32 位 / 64 位)?
是否有任何“标准”插件可用于检测scons中的 CPU 架构?
顺便说一句,这个问题已经在这里以更一般的形式提出......只是想知道是否有人已经花时间将这些信息合并到 scons 中。
c++ - 如何让项目将其构建输出与 Scons 放在同一目录中?
背景
我正在通过设置一个包含两个子项目的基本 C++ 示例项目来尝试 Scons:
- Prj1 是一个依赖于 Prj2 的 EXE
- Prj2 是一个导出一些函数的DLL
我遇到的问题是该库将其 .obj、.pdb、.lib、.dll 等文件构建在与其 SConscript 文件相同的目录中,而 EXE 将其文件构建在与其 SConscript 相同的目录中。应用程序成功地构建了 Prj2 依赖项和自身。但是,您无法运行生成的 EXE,因为它找不到所需的库,因为它位于其他目录中。
问题
如何让多个项目具有依赖关系,将其二进制文件和调试信息输出到一个公共目录中,以便它们可以被执行和调试?
潜在的解决方案
这是我到目前为止所想到的:
- 我尝试使用 VariantDir(以前称为 BuildDir),但这似乎不起作用。也许我在这里搞砸了。
- 我可能会明确地告诉编译器和链接器(例如通过 Fo/Fd)将文件放在哪里(这是最好的还是唯一的解决方案???)
- 对生成的二进制文件执行复制命令(这似乎是一种 hack,管理/维护相当痛苦)
更新
我更新了下面的文件结构和文件内容,以完整地反映工作解决方案。感谢悲伤的洞察力。
命令
使用此配置,不幸的是,您必须通过 cd'ing 到构建目录然后运行以下命令来执行构建。我需要获得一个正常工作的别名设置来解决这个问题。
文件结构
SConstruct
scons_helper.py
Prj1 征兵
SConscript Prj2
c++ - 如何在 Scons 中为具有相对路径的构建目标创建别名?
背景
我正在通过设置一个包含两个子项目的基本 C++ 示例项目来尝试 Scons:
- Prj1 是一个依赖于 Prj2 的 EXE
- Prj2 是一个导出一些函数的DLL
您可以在此处查看我的 SConstruct 和 SConscript 文件的目录结构和内容
问题
我遇到的问题是,为了从命令行构建这些目标,我必须指定它们的构建目录的相对路径和特定于平台的文件扩展名。
例如,要构建 Prj1,我必须这样做:
同样,要构建 Prj2,我必须这样做:
问题
如何在不指定相对路径和平台特定文件扩展名的情况下让 SCons 构建这些项目?
期望:
潜在的解决方案
- 使用别名 - 我很确定这是我想要的,但我显然搞砸了。我尝试了以下但没有成功:
参考
python - scons : src 并包含目录
有人可以提供一个允许以下结构的 scons 配置文件吗
在顶层,我想要 o 和最终的 exe。
python - SCons 问题 - 不理解变量类
我正在为一个项目处理 SConstruct 构建文件,并且我正在尝试从选项更新为变量,因为选项已被弃用。我不明白如何使用变量。我有 0 次 python 经验,这可能是造成这种情况的原因。
例如,我有这个:
但我收到一个错误:
不知道这应该如何工作
python - 如何生成多行构建命令?
在 SCons 中,我的命令生成器创建了非常长的命令行。我希望能够将这些命令拆分为多行,以便在构建日志中阅读。
例如,我有一个 SConscipt,例如:
当它执行时,我得到:
在带有 os.system 和 os.popen 的 python shell 中执行此操作——我得到一个可读的命令字符串,并且子 shell 进程将所有行解释为一个命令。
当我在 SCons 中执行此操作时,它一次执行每一行,这不是我想要的。
我还想避免将我的命令构建到 shell 脚本中,然后执行 shell 脚本,因为这会造成字符串转义的疯狂。
这可能吗?
更新:
cournape,
感谢您提供有关 $CCCOMSTR 的线索。不幸的是,我没有使用 SCons 开箱即用支持的任何语言,所以我正在创建自己的命令生成器。使用生成器,我怎样才能让 SCons 去做:
但打印
?