gpt4 book ai didi

build - 配置 scons 以在 Windows 命令提示符中使用 posix 参数的问题

转载 作者:行者123 更新时间:2023-12-01 11:07:31 35 4
gpt4 key购买 nike

首先,我应该预先警告你,我是一名新毕业生(当时是 EE),并不十分熟悉比我的 hello world 程序更高级的构建过程。

我的问题是:我们正试图在工作中使用 SCons 来构建我们的项目。我们的编译器称为“i686-pc-elf-gcc”并使用 posix 风格的命令行参数。但是每当我尝试使用 scons 时,它都会强制使用 Windows 参数,所以不是:

i686-pc-elf-gcc -o hello.o -c hello.cpp

我明白了

i686-pc-elf-gcc /Fohello.obj /c hello.cpp /TP /nologo

我们的编译器不喜欢。这是我的 SConscript 文件的样子

import os

path = ['c:\\compiler\GCC\i686\bin',
'../../build/include']

env = Environment(ENV = {'PATH' : path,'TEMP' : os.environ['TEMP']})
env.Replace(CC = "i686-pc-elf-gcc")
env['platform'] = 'posix'

env.Program('hello.cpp')

环境是 DOS 提示符,安装了 cygwin。我希望只需要将平台设置为 posix,但我一直在用头撞墙,但没有结果。

最佳答案

看起来默认的 SCons 编译器检测正在选择 Microsoft 编译器套件。而不是:

env = Environment(ENV = {'PATH' : path,'TEMP' : os.environ['TEMP']})

也许试试:

env = Environment(tools = ['gcc', 'g++', 'gnulink'],
ENV = {'PATH' : path,'TEMP' : os.environ['TEMP']})

这样它将使用 gcc 工具集而不是 msvc 工具集。如果你只覆盖 CC 那么所有的标志仍然是 MSVC 风格,而编译器实际上是 GNU。所以完整的 SConstruct 将是:

import os
path = [r'c:\compiler\GCC\i686\bin', '../../build/include']
env = Environment(tools = ['gcc', 'g++', 'gnulink'],
ENV = {'PATH' : path,'TEMP' : os.environ['TEMP']})
env.Replace(CC = "i686-pc-elf-gcc")
env.Program('hello.cpp')

关于build - 配置 scons 以在 Windows 命令提示符中使用 posix 参数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220444/

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