Windows 上的 Scons:kernel32.lib

发布于 2024-08-08 20:37:13 字数 361 浏览 7 评论 0原文

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

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.0A/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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北渚 2024-08-15 20:37:13

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

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

胡渣熟男 2024-08-15 20:37:13

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

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

沙沙粒小 2024-08-15 20:37:13

我更喜欢使用以下语法,因为它提醒我,我最终使用的是 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"])

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"])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文