Golang 构建并运行 Go 程序
package main
import (
"fmt"
"os"
"os/exec"
"path/filepath"
"runtime"
"strings"
"time"
)
// 创建一个新的Go程序
func createNewGoProject(projectPath string) {
// 创建项目目录
if err := os.MkdirAll(projectPath, 0755); err != nil {
fmt.Printf("无法创建目录: %v\n", err)
return
}
// 创建Go文件
goFilePath := filepath.Join(projectPath, "main.go")
goFileContent := `package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
`
if err := os.WriteFile(goFilePath, []byte(goFileContent), 0644); err != nil {
fmt.Printf("无法创建Go文件: %v\n", err)
return
}
fmt.Println("Go项目创建成功。")
}
// 运行Go程序
func runGoProgram(projectPath string) {
goBin := "go"
if runtime.GOOS == "windows" {
goBin = "go.exe"
}
// 构建Go程序
buildCmd := exec.Command(goBin, "build", "-o", filepath.Join(projectPath, "app.exe"))
buildCmd.Dir = projectPath
if output, err := buildCmd.CombinedOutput(); err != nil {
fmt.Printf("构建错误: %s\n", output)
return
}
// 运行Go程序
runCmd := exec.Command(filepath.Join(projectPath, "app.exe"))
runCmd.Dir = projectPath
if output, err := runCmd.CombinedOutput(); err != nil {
fmt.Printf("运行错误: %s\n", output)
return
}
fmt.Println("程序运行成功。")
}
func main() {
// 创建并运行Go程序的示例
projectPath := filepath.Join(os.TempDir(), "mygoapp_"+strings.ReplaceAll(time.Now().Format("20060102150405"), " ", "_"))
createNewGoProject(projectPath)
runGoProgram(projectPath)
}
这段代码首先定义了一个createNewGoProject
函数,用于创建一个新的Go项目,包括创建项目目录和写入一个简单的Go程序到main.go
文件。然后定义了一个runGoProgram
函数,用于构建和运行这个Go程序。最后,在main
函数中,我们创建了一个项目并运行它。这个例子展示了如何使用Go语言的标准库来执行文件操作和命令行执行。
评论已关闭