解決:cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

在win下用Go語言的cgo時(好比下面場景)咱們會用到的GCC編譯器,Win下咱們通常用MinGW。html

Golang鏈接Oracle數據庫win下 golang 跨平臺編譯git

MinGW全稱Minimalist GNU For Windows,是個精簡的Windows平臺C/C++、ADA及Fortran編譯器,相比Cygwin而言,體積要小不少,使用較爲方便。MinGW提供了一套完整的開源編譯工具集,以適合Windows平臺應用開發,且不依賴任何第三方C運行時庫。github

MinGW包括:
一套集成編譯器,包括C、C++、ADA語言和Fortran語言編譯器
用於生成Windows二進制文件的GNU工具的(編譯器、連接器和檔案管理器)
用於Windows平臺安裝和部署MinGW和MSYS的命令行安裝器(mingw-get)
用於命令行安裝器的GUI打包器(mingw-get-inst)golang

MingW 分 32位和64位版本:下載地址分別以下:數據庫

http://sourceforge.net/projects/mingw/ 工具

http://sourceforge.net/projects/mingw-w64/ui

好比我在使用 go-oci8 時就碰到過下面錯誤:.net

# github.com/wendal/go-oci8
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in命令行

注意,簡單起見咱們要下載的是編譯好的版本,而不是 mingw-w64-v3.1.0.tar.bz2 (7.0 MB)線程

我下載的是:

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.2/threads-posix/seh/ 

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.2/threads-win32/seh/

目前主要有三種不一樣的線程庫的定義,分別是Win32,OS/2,以及POSIX,前兩種定義只適合於他們各自的平臺,而POSIX 定義的線程庫是適用於全部的計算平臺的。我這裏選的是threads-posix。

http://zh.wikipedia.org/wiki/POSIX%E7%BA%BF%E7%A8%8B 

 

C++ Exceptions有DWARF、SJLJ、SEH三種處理方式。對應的咱們這裏選擇的是seh方式。

這裏的最新那個版本:

http://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

 

image

下載完成後,解壓縮到響應目錄,好比我這裏是解壓縮到  C:\MinGW\mingw64 目錄下, 我還須要在 path 環境變量中增長 C:\MinGW\mingw64\bin 確保能夠找到gcc。

相關文章
相關標籤/搜索