【问题标题】:Scons on Windows: kernel32.libWindows 上的 Scons:kernel32.lib
【发布时间】:2009-10-26 09:30:49
【问题描述】:

我有一个用于 scons 的 SConstruct 文件:

env = Environment()
env.Append(CPPPATH = ['./'])
env.Append(LIBS = 'kernel32.lib')
env.Append(LIBPATH = 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib')

env.SharedLibrary(target='warpLib', source='warplib.cpp')

如果我不包含“kernel32.lib”并指定 LIBPATH,我会收到链接错误。我的解决方案有效,但看起来不太便携……有什么更好、更便携的解决方案?

【问题讨论】:

    标签: dll linker scons


    【解决方案1】:

    使用 SCons 声明“DefaultEnvironment(ENV=os.environ)”。

    【讨论】:

    • 这会复制你现有的所有环境,不推荐也不可移植。
    【解决方案2】:

    不要从标准命令行调用 scons,而是使用 Visual Studio 命令提示符,它将正确设置所有环境变量

    【讨论】:

      【解决方案3】:

      我更喜欢使用以下语法,因为它提醒我我最终使用的是 Python,并且更喜欢使用原生 Python 列表命令而不是它们的伪 SCons 等效项。此外,它帮助我记住 CPPATH、LIBS、LIBPATH 等都是列表。

      env = Environment()
      env["CPPPATH"].extend(["."])
      env["LIBS"].extend(["kernel32","someotherlib"]) #No need to specify the ".lib". This gives you platform-independance automatically.
      env["LIBPATH"].extend(["C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib"])
      

      【讨论】:

        猜你喜欢
        • 2015-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-20
        • 1970-01-01
        • 1970-01-01
        • 2019-08-23
        相关资源
        最近更新 更多