如何在Linux和Solaris中编译C?

时间:2011-06-27 02:08:58

标签: c linux makefile compilation solaris

我想制作一个Makefile,可以在Linux和Solaris中编译。 我知道如何单独进行,但如何将两者结合起来并能够检测出我使用的是哪种操作系统? 我试图只为一个简单的C文件执行此操作 - 但它是更改的编译器的名称。

2 个答案:

答案 0 :(得分:5)

GNU Autoconf旨在解决这个问题:

  

Autoconf是一个可扩展的包   生成shell脚本的M4宏   自动配置软件   源代码包。这些脚本   可以适应多种包装   没有手动的类UNIX系统   用户干预。 Autoconf创建了一个   包的配置脚本   从列出的模板文件   操作系统的功能   包可以使用,以M4的形式   宏调用。

我自己使用Autoconf进行了几个简单的项目。您可以查看源代码,了解如何使用Autoconf进行简单的特征检测:

请注意,Autoconf的目的不是检测您的操作系统。相反,它旨在检测操作系统上可能存在或不存在的功能,设置等。

想一想这个问题“在这个平台上调用的C编译器是什么?”不是“我在Linux或Solaris上运行吗?”

答案 1 :(得分:0)

我相信大多数人会说使用一些花哨的autotools的东西。他们是对的。

但是......你可以在你的makefile中添加如下内容。

OS = `uname -s`
ifeq ($(OS),Linux)
  ...
endif
ifeq ($(OS),Sun)
  ...
endif