如何正确识别我的构建平台?
我想知道一个指示当前操作系统的参数。 如果支持Windows和Linux,我如何获取区分操作系统类型的系统参数。 这是一个独立于操作系统的 makefile,通过检查“if”中的参数,可以在 Windows 和 Linux 中运行。
I want to know a parameter which is an indicator of the current OS. If am supporting Windows and Linux, how can I get a system parameter which differentiates the OS types. This for an OS independent makefile which runs both in Windows and Linux by checking the parameter in an 'if'.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
过去我检查过环境变量 OS 的值。 这是在 Windows 上设置的。 对于其他平台,我已在环境中明确设置它。 然后,这可以让您将特定于平台的设置推送到名为 ...
的 makefile 中,然后在我的主 makefile 中,我只需执行
这一切即可,因为我可以通过 makefile 提取特定于平台的设置。 $(OS)
这是我的主 makefile 和的总和它针对七个不同的平台进行编译。 您可以使检测更加聪明,但这会降低可理解性。
在每个 makefile.WHATEVER 中,我提供了诸如“
显然这是一个 C/C++ 焦点 makefile”之类的定义,但它证明您可以抽象出所有平台细节。
克里斯
In the past I've checked the value of the environment variable OS. This is set on Windows. For other platforms I've explicitly set it in the environment. This then lets you push platform specific settings into makefiles called ...
In my main makefile I then just do
This all works because I can pull in the platform specific settings via makefile.$(OS)
That's the sum total of my main makefile and it compiles for seven different platforms. You could make the detection cleverer but that would reduce comprehensability.
In each makefile.WHATEVER I provide definitions of things like
Obviously this is quite a C/C++ focus makefile but it proves that you can abstract away all of the platform specifics.
Chris
您可能有兴趣查看:预定义 C/C++ 编译器宏。 这是一座金矿。
You may be interested in checking out: Pre-defined C/C++ Compiler Macros. It's a goldmine.