登录
首页 >  Golang >  Go问答

如何在go build命令中指定CFLAGS参数,而非在go源文件中?

来源:stackoverflow

时间:2024-02-14 10:24:22 494浏览 收藏

今天golang学习网给大家带来了《如何在go build命令中指定CFLAGS参数,而非在go源文件中?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

例如go文件中的my_num:

//#cgo CFLAGS: -DMY_NUM=3
/*
int multiple(int x) {
    return x * MY_NUM;
}
*/
import "C"

....

但是我会经常更改my_num的值。所以我想在构建命令中更改它。

如何在 go build 命令行中定义它?


正确答案


这不完全是 go build 选项,但您可以使用 cgo_cflags 环境变量,例如:

$ cat foo.go
package main

/*
int multiple(int x) {
        return x * MY_NUM;
}
*/
import "C"

import "fmt"

func main() {
        fmt.Println(C.multiple(2))
}
$ CGO_CFLAGS="-DMY_NUM=10" go build foo.go
$ ./foo
20
$

来自https://pkg.go.dev/cmd/cgo

构建时,cgo_cflags、cgo_cppflags、cgo_cxxflags、cgo_fflags 并将 cgo_ldflags 环境变量添加到派生的标志中 从这些指令。应使用以下命令设置特定于包的标志 指令,而不是环境变量,以便构建工作 未修改的环境。从环境变量获得的标志是 不受上述安全限制的约束。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何在go build命令中指定CFLAGS参数,而非在go源文件中?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>