Scons&VS2008

Scons&VS2008


调用scons时出错,找不到cl.exe

解决方法:

在PATH中增加VS2008...\bin目录


'cl'不是内部或外部命令...

scons1.2.0不支持VS2008

解决方法:

修改pythonxx\lib\site-packages\scons-1.2.0\scons\tool\msvc.py


     # base installation from the registry and deduce the default

     # directories.

     version_num, suite = SCons.Tool.msvs.msvs_parse_version(version)

-    if version_num >= 8.0:

+    if version_num >= 9.0:

+        return (os.environ['INCLUDE'], os.environ['LIB'], os.environ['PATH'])

+    elif version_num >= 8.0:

         suite = SCons.Tool.msvs.get_default_visualstudio8_suite(env)

         defpaths = _get_msvc8_default_paths(env, version, suite, use_mfc_dirs)

     elif version_num >= 7.0:


加了以上内容后要设置环境变量INCLUDE和LIB,和VCIDE里一样设吧

环境变量还挺麻烦,要找到VCInstallDir,WindowsSdkDir,FramewordSDKDir等,可以直接去VC安装目录下执行一下vcvarsall.bat,再


命令行下执行set命令就能看到具体位置了,也可能可以用%VCInstallDir%代替,但用VC里的$(VCInstallDir)肯定是不行的.



HelloWorld编译通过,mongodb编译还有一些路径错误,如boost,js等,下载下来用junction指定对应位置即可.


SCons 是一个基于 Python 的开源软件构建工具,其核心特性是使用 Python 脚本作为构建配置文件,从而提供高度灵活和可扩展的构建流程控制。SCons 能够自动检测依赖关系,并支持跨平台构建,适用于 C/C++、Java、Fortran 等多种语言的项目构建。 ### 基本配置方法 SCons 的配置主要依赖于 `SConstruct` 文件,该文件是项目构建的入口点,类似于 Make 中的 `Makefile`。在项目根目录下创建 `SConstruct` 文件后,SCons 会自动读取并执行其中的指令。 以下是一个简单的 `SConstruct` 文件示例,用于构建一个 C 程序: ```python Program('hello.c') ``` 上述代码会告诉 SCons 编译 `hello.c` 并生成一个可执行文件(在 Unix-like 系统上为 `hello`,在 Windows 上为 `hello.exe`)[^1]。 ### 构建多个源文件 如果程序由多个源文件组成,可以使用列表形式指定: ```python Program(['main.c', 'utils.c']) ``` ### 自定义目标名称 默认情况下,生成的可执行文件名称与源文件相同。若需自定义目标名称,可以使用如下方式: ```python Program(target='myapp', source=['main.c', 'utils.c']) ``` 此时生成的可执行文件名称为 `myapp`。 ### 指定编译器和编译选项 SCons 支持通过环境变量来设置编译器及其选项。例如,使用 `Environment` 来定义编译器和编译标志: ```python env = Environment(CC='gcc', CCFLAGS='-Wall') env.Program(target='myapp', source=['main.c', 'utils.c']) ``` ### 构建库文件 SCons 也支持构建静态库和共享库。构建静态库的示例如下: ```python StaticLibrary('libutils', ['utils.c']) ``` 构建共享库的示例如下: ```python SharedLibrary('libutils', ['utils.c']) ``` ### 构建子目录项目 若项目结构较复杂,包含多个子目录,可以使用 `SConscript` 文件来组织构建逻辑。主 `SConstruct` 文件中可以调用子目录中的 `SConscript` 文件: ```python SConscript('src/SConscript') ``` 在 `src/SConscript` 文件中可以编写: ```python Program('main.c') ``` ### 清理构建产物 与 `make clean` 类似,SCons 提供了清理构建产物的功能: ```bash scons -c ``` 该命令会删除所有由 SCons 生成的文件。 ### 其他常用选项 - **并行构建**:使用 `-j` 参数指定并行线程数,提升构建速度: ```bash scons -j4 ``` - **显示详细信息**:使用 `-Q` 参数减少输出冗余信息: ```bash scons -Q ``` - **指定构建目标**:可以直接指定要构建的目标: ```bash scons myapp ``` ### 自定义构建步骤 SCons 允许用户通过 `Command` 和 `Action` 定义自定义的构建步骤。例如,执行一个脚本生成配置文件: ```python config_file = Command('config.h', 'generate_config.py', 'python generate_config.py') ``` ### 配置环境变量 SCons 提供了 `Environment` 对象来管理构建过程中的各种配置参数,包括编译器、链接器、库路径等。可以复制现有环境并进行修改: ```python env = Environment() env.Append(CCFLAGS=['-g', '-O2']) env.Program('debug_app', 'main.c') ``` ### 使用第三方模块 SCons 支持通过 `Tools` 扩展功能,用户可以加载特定工具模块以支持更多语言或构建需求: ```python env = Environment(tools=['default', 'qt']) ``` ### 构建安装目标 SCons 支持定义安装目标,通常用于将构建产物复制到指定目录: ```python install = env.Install('/usr/local/bin', 'myapp') env.Alias('install', install) ``` 使用时执行: ```bash scons install ``` ### 构建文档 SCons 也支持构建文档,例如使用 `PDF` 构建目标生成 PDF 文档: ```python env.PDF('report.tex') ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值