mac上golang编译出现clang错误
错误现象
几周前,突然发现我的go 项目编译开始报一种以前从来没有出现过的错误:
# runtime/cgo
clang: warning: argument unused during compilation: '-pthread'
# runtime/cgo
clang: error: no such file or directory: 'libgcc.a'
需要说明下:我的开发机器是mac mini,系统当时是10.8.5, 上周升级为mavericks。
问题进一步探索
刚出现时我有点慌,当然上了google,查出一大堆结果,答案五花八门,一一试过都不能解决,这下我慌了——毕竟go语言是一门新语言,而apple又是google的“死敌”!
我进一步发现,我用 go build -a 就会报这个错误,否则不报这个错误。这就有些蛋疼了:
+ 我修改了某个包
+ 在引用了它的程序里会用它原来的包(在 $GOPATH/pkg/darwin_amd64/ 下),以前用go build -a 就可以保证是最新的(加上 -a 参数会对引用的包重新编译),但现在会报错,于是我只能手动删除 $GOPATH/pkg/darwin_amd64/ (后来我写了一个脚本),然后再编译。
在写了清包脚本和编译脚本后,我就将这事暂时放下了。
问题加剧,不解决不行了
今天早上我需要编译一个linux和Windows版本,于是就到 $GOROOT/src 下执行:
$ sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash
$ sudo CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash
这两个命令都报错了,在编译到runtime/cgo 时!问题也是clang 出错。
更令我上火的是,我发现不论在什么情况下 go build 也报文章开头的错误了,这下我只能又一次google。结果与三周前一样一样的。
问题回溯
我在举手无措时,回想几周前出现这个问题我的电脑装了些什么东西呢?我想到那天进行了Xcode 5 的升级。一想到这,我就几乎断定就是xcode5 引起的了。因为xcode是用clang 进行编译的。于是google : upgrade xcode 5 golang warning: argument unused during compilation: ' "-pthread" ,进入到 Mac XCode 5 build problem 看了下,里面提到重新安装go 1.2rc3 就解决了。我依葫芦画瓢,下载golang1.2rc3 ,安装,测试,终于正常了!
总结
写这篇blog有两个目的:
1. 我相信很多golanger 都会遇到这个问题,而golang 1.2rc3 才发布没有多久,或许有些朋友还不知道,写此文已做提醒。
2. 提醒自己对待 “爱机” 像写程序一样细心。
mac上golang编译出现clang错误的更多相关文章
- mac 上python编译报错No module named MySQLdb
mac 上python编译报错No module named MySQLdb You installed python You did brew install mysql You did expor ...
- mac上Navicat新建数据库3680错误解决办法
mac上Navicat新建数据库3680错误解决办法 1.在设置里关闭mysql,若不能关闭,在终端输入: sudo /usr/local/mysql/support-files/mysql.serv ...
- [lua] mac上如何编译snapshot(检测Lua中的内存泄露)
最近我们的unity手游频繁闪退,只要进入战斗场景,之后一段时间就会闪退,如果是在unity编辑器中则会报出not enough memory的错误!猜测应该是有内存泄漏: 由于我们使用了tolua, ...
- MAC上反编译android apk---apktool, dex2jar, jd-jui安装使用(含手动签名)
前文 介绍了在Windows平台利用强大的APK-Multi-Tool进行反编译apk,修改smali源码后再回编译成apk的流程,最近受人之托,破解个apk,所幸的是所用到的这三个软件都是跨平台的, ...
- Mac上反编译Android apk安装包
什么是反编译 我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译.Android的反编译分成两个部分: 一 ...
- mac 上使用octave的plot错误的解决办法
在mac10.10上使用octave的时候,键入 plot(x, y)的时候会出现如下错误: ^ line : unknown or ambiguous terminal type; type jus ...
- Mac上csv导入mysql提示错误[Error Code] 1290 - The MySQL server is running with the --secure-file-priv option解决办法
1.进入mysql查看secure_file_prive的值 $mysql -u root -p mysql>SHOW VARIABLES LIKE "secure_file_priv ...
- 在Windows上使用CodeLite+MinGW+Clang进行开发
前几天听说clang 3.4已经release了,然后我又手痒就折腾一下,在这里记录一下折腾的经过. 在以前就试过clang-cl+VC的开发环境,编译代码到是没发现什么大问题,有不少警告而已,不过c ...
- TiDB之mac上搭建及调试技巧
此文目的 由于本人最近已经成为TiDB的粉丝,所以就开始各种研究TiDB的源码,研究源码这个事情,首先就需要在自己电脑上不断的调试及修改.TiDB本身的代码是非常容易编译和调试的,但是要把PD.TiK ...
随机推荐
- Swift_TableView(delegate,dataSource,prefetchDataSource 详解)
Swift_TableView(delegate,dataSource,prefetchDataSource 详解) GitHub import UIKit let identifier = &quo ...
- 【Django笔记四】Django2.0中的表单
一.环境版本信息: 操作系统:windows10 Django版本:2.0.5 Python版本:3.6.4 Mysql版本: 5.5.53 安装mysql 二.基础信息 1.App中的模型mod ...
- CentOS中的 yum upgrade 和 yum update 的区别
通过 man yum 的帮助信息了解 yum update 和 yum upgrade: update If run without any packages, update will update ...
- Oracle之多表查询
-多表查询 1.交叉连接 select * from t_class for update; select * from t_student for update; select for update ...
- 典型的 ajax 异步请求及错误处理
$.ajax({ url: path + '/emergency/saveEmergency.do', async: false,//同步,会阻塞操作 type: 'POST',//PUT DELET ...
- AtCoder Grant Contest 10.F 博弈
题意:给定一棵树,每个节点有个权值,Alice和Bob轮流进行操作,给定游戏起点指针指向节点C.不断进行下述操作. 1.将当前节点权值-1,然后将指针从该节点移动到相邻节点,出现一方不能移动(即指针指 ...
- 推荐 的FPGA设计经验(3) 物理实现和时间闭环优化
Optimizing Physical Implementation and Timing Closure Planning Physical Implementation When planning ...
- Mac iTem2 自动登录服务器配置
假设你要连接的服务器地址为123.123.123.123,端口号为8888,用户名为root,密码为mimamima 编写shell文件"login_server.sh",并放置于 ...
- Android 模拟器下载、编译及调试
Android 模拟器源码下载 Android 模拟器源码的下载与 Android AOSP 源码库的下载过程类似,可以参考 Google 官方提供的 Android 源码下载文档 来了解这个过程. ...
- facebook原生广告添加adchoice图标
1.在需要显示adchoice的地方添加一个textview: <LinearLayout android:id="@+id/ad_ic_action" android:la ...