【问题标题】:scons : src and include dirsscons : src 并包含目录
【发布时间】:2008-11-19 18:13:08
【问题描述】:

谁能提供一个允许以下结构的 scons 配置文件

toplevel/
        /src - .cc files
        /include .h files

在顶层我想要 o 和最终的 exe。

【问题讨论】:

    标签: python scons


    【解决方案1】:

    这是 Sconscript 文件的一个示例

    env=Environment(CPPPATH='/usr/include/glib-2.0/:/usr/lib/glib-2.0/include:inc',
                    CPPDEFINES=[],
                    LIBS=['glib-2.0']) 
    env.Program('runme', Glob('src/*.c'))
    

    (对于示例来说,环境行并不是真正必需的,但我让它包含非标准的 glib 标头路径并将其留在那里,以便您了解如何添加额外的包含和定义)

    源文件在 src 目录,头文件在 inc 目录。您从基目录运行 scons,输出文件也在同一目录中生成。

    【讨论】:

      【解决方案2】:

      这个问题:https://stackoverflow.com/questions/279860/... 提供了一个非常灵活的 scons 框架,只需对路径变量进行一些调整即可满足您的需求。

      【讨论】:

      • 我认为这个答案对于大多数刚接触 scons 的人来说太难了。变体目录? (例如)并假设您了解 Python。
      • 你的假设是正确的,理查德。我不知道那个配置文件做了什么,但我想我设法从中提取了一些有用的东西。
      【解决方案3】:
      env=Environment(CPPPATH='/usr/include/glib-2.0/:/usr/lib/glib-2.0/include:include',
                      CPPDEFINES=[],
                      LIBS=['glib-2.0']) 
      
      if ARGUMENTS.get('debug', 0):
          env.Append(CCFLAGS = ' -g')
      
      env.Program('template', Glob('src/*.cc'))
      

      辛苦了。谢谢。

      【讨论】:

      • 我们如何让目标文件(*.o)进入一个新创建的名为 obj 的文件夹
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多