gpt4 book ai didi

c++ - windows下使用scons编译C++代码,scons添加 "/Fo"作为编译选项

转载 作者:行者123 更新时间:2023-11-30 05:14:23 26 4
gpt4 key购买 nike

使用以下内容:Python版本2.7.13,Scons版本2.5.1,安装了Visual Studio 2012 express,但我不打算使用它。已安装代码块和 MinGW-W64-builds-4.3。

windows下使用Scons编译C++代码(networkit工具包)。 Scons 添加“/Fo”作为编译选项。此选项仅适用于 VC++,不适用于我尝试使用的 MinGW。为什么 Scons 要添加这个标志?我已经检查了我的 Sconstruct 和引用 build.conf 文件,但似乎无法找到明确设置的标志。

我的构造文件在这里(http://www103.zippyshare.com/v/jSrMapGz/file.html),build.conf 文件在这里(http://www11.zippyshare.com/v/aXGQA5b5/file.html)。

我想用 g++ 的“-o”标志完成编译,这相当于 VC++ 的/Fo 标志。我只是想不通 Scons 从哪里挑选这个标志 :(

我是python和scons的新手。我通常使用 VC++ 2012,但必须为项目使用 networkit 工具包,但它使用 C11 功能。而且我还不能更新到 VC++ 2015/2017。

感谢您的帮助!

最佳答案

我检查了您的 SConstruct 文件,您正在将构建环境初始化为

env = Environment()

,它将环境变量“tools”设置为其标准值“default”。后一种设置的意思是:让SCons判断当前系统安装了哪些工具/编译器,并自动将相应的Builder添加到构建环境中。在 Windows 下,SCons 将更喜欢“vc”而不是“mingw”...目前这是硬编码的(我们正在努力为核心源的 future 版本更改它)。

你可以做什么,因为你知道你安装了一个你想明确使用的“mingw”编译器,告诉 SCons 你只想使用“mingw”。以下示例来自页面 https://bitbucket.org/scons/scons/wiki/SconstructShortMingwWin32展示了这个的基本配方:

import os

#don't use the default environment
DefaultEnvironment(tools=[])
#create an environment that uses mingw tools
env = Environment(ENV=os.environ, tools=['mingw'])

#the target will be myprogram.exe (in win32)
#the source files will be every file in the
#current directory that matches "*.cpp"
env.Program(target='myprogram', source = Glob('*.cpp'))

如需进一步帮助和引用,请考虑查看我们的 User GuideMan page .

关于c++ - windows下使用scons编译C++代码,scons添加 "/Fo"作为编译选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43471401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com