Windows上的Scons:kernel32.lib

时间:2009-10-26 09:30:50

标签: dll linker scons

我有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,我会收到链接错误。我的解决方案有效,但看起来不太便宜......什么是更好,更便携的解决方案?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我更喜欢使用以下语法,因为它提醒我我最终使用的是Python,并且更喜欢使用本机Python列表命令而不是它们的pseduo 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"])