二、在Unix(macOS)环境下的编译器配置与hello world的编译
2026/6/6 13:00:23 网站建设 项目流程

0、系统环境

准备好一台有macOS环境的电脑,macOS for AppleSillcon(ARM架构版本)或者 macOS for IntelChip(x86架构版)。

没有Mac电脑的可以根据网上的教程在物理机安装macOS,不过要考虑硬件的兼容性问题。或者也可以安装macOS虚拟机。他们都属于macOS for IntelChip(x86架构版)。

我的教程:拒绝无脑整合包,VMWareWorkStation安装macOS虚拟机-CSDN博客

我今天是在虚拟机上用的是macOS Sonoma 14,和Mac M系电脑的macOS26一同演示。

1、编译器环境配置

首先安装包管理器Homebrew,按照官方提示,在终端(Terminal)输入命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

然后会下载Homebrew,同时还会询问你是否要下载command line tools for xcode。直接同意,这里面就包含了你所需要的Clang编译套件,完成编译器基础部署。

像Mac M系要额外配置一下路径/opt/homebrew/bin。使用如下命令:

# 追加环境变量到配置文件 echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc # 重载配置立即生效(不用重启终端) source ~/.zshrc

2、创建第一个最简Unix开发项目

1.建文件夹

cd Desktop #跳转到桌面文件夹
mkdir Unix #创建一个名叫Unix的文件夹 cd Unix #跳转到Unix文件夹
mkdir Helloworld #创建一个叫Helloworld的文件夹 cd Helloworld #跳转到Helloworld文件夹

2.创建源码文件

touch main.c #创建一个文件main.c

将默认打开方式换成macOS自带的文本编辑器,而不是任何IDE。

brew install duti #安装修改默认打开的工具
duti -s com.apple.TextEdit .c all #将苹果的文本编辑器设为.c文件的默认文件,.cpp和.h同理 duti -s com.apple.TextEdit .cpp all duti -s com.apple.TextEdit .h all duti -s com.apple.TextEdit .swift all
#验证是否生效 duti -x .c duti -x .cpp duti -x .h duti -x .swift

open main.c #用系统默认方式打开main.c文件,当然也可以设为别的文本编辑器

3.用C语言写最简的Helloworld代码

#include<stdio.h> int main(){ printf("Hello World\n"); return 0; }

3、main.c文件的编译

1.main.c文件的编译

#编译main.c文件,变成可执行文件默认a.out,Unix系的可执行文件不在乎后缀 clang main.c #编译main.c文件,变成名为test的文件 clang main.c -o test

2.可执行文件的执行

输入命令:./「可执行文件的文件名」,即可执行。能顺利输出Hello World。

#执行可执行文件a.out ./a.out #执行可执行文件test ./test

4、其他语言的编译

1.C++的编译

创建C++源码文件,并打开。

touch c_plus.cpp open c_plus.cpp

结果毛病一大堆,出现干扰的红线,开头还会自动转大小写,所以要设置一下。

点击左上角,文本编辑器->设置,「格式」改成纯文本,「选项」中键入时检查拼写、检查拼写和语法、自动纠正拼写、智能引号、智能破折号、文本替换,全取消。

做完这一切,重新创建,就好了

可以输入代码了

#include <iostream> int main(){ std::cout<<"Hello C++"<<std::endl; return 0; }

保存后编译命令是:

# 编译这个.cpp文件为默认可执行文件a.out clang++ c_plus.cpp # 编译这个.cpp文件为可执行文件,名字叫plus clang++ c_plus.cpp -o plus

执行方式和前面一样

2.Swift的两种用法

创建Swift文件,并打开。

touch swiftc.swift open swiftc.swift

源代码:

print("Hello Swift")

1.交互式终端(REPL交互)

Swift的独特之处在于它像python一样可以像写脚本一样在终端里交互式执行,不用编译成可执行文件。使用命令:swift 「文件名」

swift swiftc.swift

在下面的图片中,我们可以看到,在执行swift swiftc.swift命令前,ls查看文件夹中的文件时,就这么多东西,执行后还没有增加任何可执行文件,swiftc.swift文件可以直接执行。

由此可见,swift语言可以当脚本一样用。

2.编译生成二进制程序

# 将.swift文件编译成默认可执行文件,规则是源文件.swift后缀去掉,所以我的是swiftc swiftc swiftc.swift # 将.swift文件编译成可执行文件helloswift swiftc swiftc.swift -o helloswift

执行同理

预告

下一篇我将以一个案例,讲一讲多文件Unix工程化开发

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询