开发者

Scons on Windows: kernel32.lib

I have an SConstruct file for scons:

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

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

If I don't inlcude 'kernel32.lib' and specifiy the LIBPATH I get a link error. My solution works, but doesn't look very portable ... What is a better, more portable solution?


Use SCons declaration 'DefaultEnvironment(ENV=os.environ)'.


Rather than calling scons from a standard command line, use the visual studio command prompt, that will set up all your environment variables correctly


I prefer to use the following syntax because it reminds me that I am ultimately using Python, and prefer to use the native Python list commands than their pseduo SCons equivalents. Additionally, it helps me remember that CPPATH,LIBS,LIBPATH, etc are all lists.

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"])
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜