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

有帮助吗?

解决方案

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

其他提示

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

我更喜欢使用以下语法,因为它提醒我我最终使用的是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"])
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top