【问题标题】:Can't change CC in go env无法在 go env 中更改 CC
【发布时间】:2021-05-14 10:47:54
【问题描述】:

我无法在我的 go 环境中更改 CC。我使用 Windows 10 并将 Cmder 设置为 bash 作为管理员。我正在尝试使用 go get github.com/icexin/gocraft 构建和运行一个 go 程序,但我不断收到相同的错误 cgo: exec gcc: exec: "gcc": executable file not found in %PATH%。我没有安装任何第三方 gcc 编译器。这是因为我只安装了很多与 Visual Studio 一起安装的 C 和 C++ 工具,我不想用多个构建工具弄乱我的路径,也不想混淆我使用的任何依赖 Visual Studio 的 clang 版本的 C 开发工具.我的 Visual Studio clang 工具的路径是 /c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/bin/clang-cl.exe,它可以完美替代第三方 gcc(在 Cmder 中输入)。我尝试运行:
export CC=/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/bin/clang-cl.exe,
export CC=/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/bin/clang-cl.exe,
export CC=C:\Program\ Files\ \(x86\)\Microsoft Visual Studio\2019\Community\VC\Tools\Llvm\bin\clang-cl.exe,

这些都不起作用。如何将 gcc 更改为我的 Visual Studio clang 路径?或者更改 go env CC 变量?

编辑
我发现问题在于go env CC 声明在C:\Program 之后中断。我在Windows环境变量中设置了CCset命令,export命令和go env CC不管我怎么输入文件路径在C:\Program之后总是断掉。

编辑 2
看我不是唯一一个有这个问题的人: https://github.com/golang/go/issues/41400

【问题讨论】:

标签: visual-studio go gcc clang


【解决方案1】:

使用 go env 检查 Go 环境变量 - 并使用 -w 标志使更改持久化:

# go env -w "CC=clang-cl.exe"

# go env CC

clang-cl.exe

【讨论】:

  • 现在我得到cgo: exec clang-cl.exe: exec: "clang-cl.exe": executable file not found in %PATH% 有没有办法让clang-cl.exe 变成可执行文件?
【解决方案2】:

我无法找到任何解决方案。这是因为这是 Go 的一个已知问题,详细信息请参见此处:https://github.com/golang/go/issues/41400。显然 CC 变量将在 go env 中的第一个空格处拆分,即使您在空格前添加 \ 也是如此。但是,即使我能够让它工作,Visual Studio 附带的 clang 版本实际上也不适用于 cgo。

【讨论】:

    猜你喜欢
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 2010-12-15
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    相关资源
    最近更新 更多