最近正在做的一个项目要在Linux环境下迁移到Windows下进行继续的开发, 结果在Windows下尝试对项目进行编译时出了问题。
问题描述
由于项目中有使用到jieba库的Golang版本,而这个版本的构建中有使用到C++。因此在编译过程中有对gcc的依赖。然而,在编译的过程中,报出来这样的错误:
解决思路
在查询这些报错时(英语不好很多没看懂),一条回答的意思大概是GCC8这个版本后,对一些什么东西加强了检查。换句话说就是更严格了,这就导致有些代码用旧版本GCC编译后不会产生错误,而使用新的版本就有可能会出现错误。
所以我看了本机的GCC环境:
怪不得,version 8.1.0;接着我又去看了原来的开发环境Ubuntu的GCC版本:
version 7.4.0,看来应该就是这里出现了问题。
之后,我重新找了老版本的MinGW重新下了个GCC,捯饬半天,终于可以了:
ps:图床突然挂了我贴那个编译成功的代码吧…
把GCC降到version 4.8.2(其实是我随便找的版本,版本在8之前的应该都OK)后,再次编译:
D:\Goland\Gowork\BlockChain\bitcoin_part6\src\coin>go build main.go
D:\Goland\Gowork\BlockChain\bitcoin_part6\src\coin>
就不会有错误啦!
References
MinGW旧版本下载:
[https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.2/threads-posix/seh/x86_64-4.8.2-release-posix-seh-rt_v3-rev2.7z/download](https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64/Personal Builds/mingw-builds/4.8.2/threads-posix/seh/x86_64-4.8.2-release-posix-seh-rt_v3-rev2.7z/download)
问题: