在win下用Go语言的cgo时(比如下面场景)我们会用到的GCC编译器,Win下我们一般用MinGW。

Golang连接Oracle数据库win下 golang 跨平台编译

MinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不依赖任何第三方C运行时库。

MinGW包括:
一套集成编译器,包括C、C++、ADA语言和Fortran语言编译器
用于生成Windows二进制文件的GNU工具的(编译器、链接器和档案管理器)
用于Windows平台安装和部署MinGW和MSYS的命令行安装器(mingw-get)
用于命令行安装器的GUI打包器(mingw-get-inst)

MingW 分 32位和64位版本:下载地址分别如下:

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

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

比如我在使用 go-oci8 时就碰到过下面错误:

# 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

 

下载完成后,解压缩到响应目录,比如我这里是解压缩到  C:\MinGW\mingw64 目录下, 我还需要在 path 环境变量中增加 C:\MinGW\mingw64\bin 确保可以找到gcc。

解决:cc1.exe: sorry, unimplemented: 64-bit mode not compiled in的更多相关文章

  1. go build 时报错 cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

    最近在玩Go win下尝试编译Go的时候遇到了下面提示(可能是gorocksdb用到了gcc) gcc也需要64位的 最后找到了个帖子: https://github.com/mattn/go-sql ...

  2. cc1.exe -fno-stack-protector

    # github.com/mattn/go-sqlite3 cc1.exe: error: unrecognized command line option "-fno-stack-prot ...

  3. 使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表

    原文:使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表 我们知道目标平台是32位的程序运行在64位的系统上,去访问部分注册表的时候系统自动重定向到win32node节点对应的 ...

  4. 检查DLL,EXE文件是64位或者32位的方法

    检查DLL,EXE文件是64位或者32位:输入corflags <assembly path>:

  5. hadoop本机运行 解决winutils.exe的问题

    如何解决winutils.exe的问题什么原因导致的???windows是客户端,读取linux的文件.客户端没有hadoop的环境重新在windows上面编译hadoop,编译出来window版本的 ...

  6. 解决appt.exe finished with non- zero exit value 1问题

    解决appt.exe finished with non- zero exit value 1问题 最近使用Android Studio时,经常遇到appt.exe finished with non ...

  7. Windbg+Procdump解决w3wp.exe CPU过百问题

    最近发布在windows  server2012  IIS8.0上的一个WebAPI项目,才几十个人在线,CPU就会出现过百情况,并且CPU一旦过百应用程序池就自动暂停掉,看到这个问题我感觉应该是程序 ...

  8. 解决adb.exe' and can be executed.

    百度google大家多说的是任务管理器 kill掉adb 或者重启adb server,但我任务管理器就没有adb ,猜测是某个程序占用了adb端口.于是按此思路查找. 5037为adb默认端口 查看 ...

  9. 为什么一定要杀掉病毒?---帮一位老师解决MyDocument.exe优盘文件夹图标病毒问题

    最近一位大学老师给我抱怨了一个她遇到的烦恼,一直在纠结,生活都被打乱了,事情大概是这样的: 她的优盘里辛辛苦苦弄好备课文件,放在了优盘里,可是每次上课时,就是找不到文件.有时好多文件都被修改了,非常烦 ...

随机推荐

  1. Android BroadcastReceiver实时监听电量

    Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的.我们可以动态注册这个类的一个实例通过 Context.registerReceiver()方 ...

  2. http 服务

    今天把一个功能模块做成了http服务,这还是第一次写http服务,纪录下来. package com.chuntent.itemsearch; import java.io.BufferedReade ...

  3. ajax练习四留言板

    留言界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  4. Android 定制下拉刷新头部 Ultra Pull To Refresh

    我们看到手机中的各种APP的花样繁多的下拉刷新是不是有点心动呢,想着自己定制自己的专门的下拉刷新,市场上比如,58同城,京东,天猫,美团等下拉刷新都是在下拉头部执行帧动画,我最近看到一个APP,就是慕 ...

  5. Ext的正则表达式

    http://www.cnblogs.com/azai/archive/2010/12/31/1923140.html   今天看到一篇关于Extjs正则表达式比较系统的总结. 使用extJs时能常用 ...

  6. Codeforces Round #362 (Div. 2) A.B.C

    A. Pineapple Incident time limit per test 1 second memory limit per test 256 megabytes input standar ...

  7. uDig 简介

    uDig是一个 open source (EPL and BSD) 桌面应用程序框架,构建在Eclipse RCP和GeoTools(一个开源的Java GIS工具包)上的桌面GIS(地理信息系统) ...

  8. Post的请求案例

    1.简单的post请求案例 $.post(rootPath+"/jasframework/loginLog/getStatisticsInfoByUserId.do",functi ...

  9. arithmetic-slices-ii-subsequence(太难了)

    https://leetcode.com/problems/arithmetic-slices-ii-subsequence/ 太难了... package com.company; import j ...

  10. 9.6. MySQL中保留字的处理

    尝试使用一个识别符,例如使用嵌入式MySQL 数据类型或函数名作为表名或列名,例如TIMESTAMP 或GROUP ,会造成一个常见问题.允许你这样操作( 例如,ABS 可以作为一个列名) .但是,默 ...