【发布时间】:2018-10-24 07:31:54
【问题描述】:
我正在编写一个C 程序,我的操作系统是MacOS。
我想知道如何添加一个宏以便在不同的操作系统下编译我的C程序,主要是Windows和Linux?
非常感谢您为我提供关于这个问题的想法。
【问题讨论】:
-
宏应该做什么?
-
这在很大程度上取决于您的程序所依赖的系统相关的东西。
-
为什么不根据你的目标在你的makefile中创建不同的块呢?将目标作为附加信息传递,在本主题中很好地解释了:stackoverflow.com/questions/2826029/… 和不同的目标:stackoverflow.com/questions/13919505/…
-
我不会使用宏,而是使用操作系统抽象层。那么编译的时候就很容易在MacOS、WindowsOs和LinuxOS之间切换了。
-
正如@4386427 所说 - 你应该设计 是可移植的。分离出可移植和不可移植的代码。将依赖于操作系统的代码放入一组单独的函数中并编译成 DLL/.so 文件。最初需要更多的工作,但从长远来看可以节省大量精力。
标签: c compilation macros cross-platform cross-compiling