gpt4 book ai didi

c - Windows 和 *nix 编译检测

转载 作者:可可西里 更新时间:2023-11-01 09:43:50 25 4
gpt4 key购买 nike

应该为 Windows、Linux 和嵌入式目标编译一个项目。该应用程序在主机或嵌入式目标上运行时具有行为差异。为了总结我的要求,这是表格:

   Target               Compiler      Behavior
Windows MSVC, gcc A
Host Linux gcc A
Embedded Linux cross pltf gcc B

我希望创建一个可以自动识别编译器和环境差异的 Makefile(无需手动传递参数/定义)。是否可以仅在 C 源文件级别使用条件编译来解决此类问题?
到目前为止,我还没有使用 automake。

最佳答案

autotools是为了解决这个问题。 Makefile 本身无法做到这一点。

至于条件编译,这些编译器定义了几个可用的宏(例如用于 MSVC++ 的 _MSC_VER,用于 Windows 的 _WIN32__linux__适用于 Linux)。此外,gcc 提供 assertions for handling different CPU targets .

Target         Compiler     Conditional
Windows MSVC++ #ifdef _MSC_VER
Windows gcc #if defined(_WIN32) && defined(__GNUC__)
Linux gcc #if defined(__linux__) && defined(__GNUC__)
Platform (x86) gcc #if #cpu(i386)
Platform (arm) gcc #if #cpu(arm)

这应该足以满足您的目的。

关于c - Windows 和 *nix 编译检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2253747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com