我的软件可以编译并正常运行,但是当我添加-race选项以检查竞态条件时,它不会生成:
GOROOT=C:\Go
GOPATH=<deleted>;D:\Golang
C:\Go\bin\go.exe build -race -o C:\Users\Andrewp\AppData\Local\Temp\___1Race_Detector.exe -gcflags "-N -l" -a <deleted>
# runtime/cgo
gcc_libinit_windows.c: In function 'x_cgo_sys_thread_create':
gcc_libinit_windows.c:56:12: error: implicit declaration of function '_beginthread' [-Werror=implicit-function-declaration]
thandle = _beginthread(func, 0, arg);
^
cc1: all warnings being treated as errors
Compilation finished with exit code 2
请注意,它以前可以工作,但是我已经升级到go1.9.2 windows / amd64版本(尽管我认为这没有关系)。还安装了MSYS。
我也正在使用GoLand(在Windows 10下)进行构建,但是从命令行进行构建时会遇到相同的问题。
任何人都没有关于Go编译器如何工作的信息,特别是。当使用竞速检测器或cgo时,我可以找出原因吗?
其他信息: 我可以使用以下方法在终端上进行构建:
开始构建-race
问题似乎是由GoLand添加到命令行的-a选项引起的,因为此几乎相同的命令行失败:
转到build -race -a。
但这没关系:
开始构建-a。