2009-10-26 32 views
1

我有一个scons的文件SConstruct:使用SCons在Windows上:KERNEL32.LIB

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') 

如果我不inlcude 'KERNEL32.LIB' 和specifiy的LIBPATH我得到一个链接错误。我的解决方案有效,但看起来不太便携......什么是更好,更便携的解决方案?

回答

3

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

+0

这将复制所有您现有的环境,这是不推荐和不便携的。 – 2016-06-29 01:44:25

0

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

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"]) 
相关问题