在 Ubuntu 上使用 GCC 编译 Go 程序并不是一个常见的做法,因为 Go 语言自带了一个非常强大的编译器 gc,通常我们直接使用它来编译 Go 程序。不过,如果你确实想要使用 GCC 来编译 Go 程序,可以通过以下步骤实现:
安装 Go:首先,确保你的系统上已经安装了 Go。如果没有安装,可以通过以下命令安装:
sudo apt update
sudo apt install golang-go
安装完成后,可以通过 go version 命令检查安装是否成功。
编写 Go 程序:创建一个简单的 Go 程序,例如 hello.go:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
使用 cgo:Go 语言支持通过 cgo 调用 C 代码。为了使用 GCC 编译 Go 程序,你需要将 Go 代码与 C 代码结合使用。首先,创建一个 C 文件,例如 hello.c:
#include <stdio.h>
void hello_from_c() {
printf("Hello from C!\n");
}
创建 Go 文件并调用 C 函数:修改 hello.go 文件,使其调用 C 函数:
package main
/*
#include <stdio.h>
void hello_from_c() {
printf("Hello from C!\n");
}
*/
import "C"
func main() {
C.hello_from_c()
println("Hello, World!")
}
使用 GCC 编译:使用 gcc 编译 Go 程序。由于 Go 代码中包含了 C 代码,你需要将它们一起编译。可以使用以下命令:
gcc -o hello hello.go hello.c -I/usr/lib/go/src/runtime/cgo/gcc
这里,-I/usr/lib/go/src/runtime/cgo/gcc 是 Go 的 cgo 头文件路径。
运行程序:编译完成后,可以通过以下命令运行生成的可执行文件:
./hello
你应该会看到以下输出:
Hello from C!
Hello, World!
通过这种方式,你可以使用 GCC 编译包含 C 代码的 Go 程序。不过,对于纯 Go 程序,建议直接使用 go build 命令进行编译。