mac通过HomeBrew安装qt5.11.1

HomeBrew 不支持 iOS/Android

go的版本为go1.9.7,低版本1.8,缺少math/bits包

1. 安装HomeBrew 和 qt

# 先安装 HomeBrew,并且 export QT_HOMEBREW=true
brew install qt5 //安装 Qt 

2. 设置环境变量

找到qt的安装目录,默认在 /usr/local/Cellar/qt/5.11.1
设置环境变量: QT_DIR = /usr/local/Cellar/qt/5.11.1

3. 克隆qt

go get -u -v github.com/therecipe/qt/cmd/...

 

4. 安装qtsetup、qtdeploy、qtminimal、 qtmoc、 qtrcc,安装前查看echo $GOBIN目录。默认安装在此目录。

1. github.com/therecipe/qt/cmd 执行安装命令
go install -x qtsetup/main.go //安装qt的各种包
go install -x qtdeploy/main.go // 发布qt的程序
go install -x qtminimal/main.go // 减少编译文件大小
go install -x qtmoc/main.go //Qt的moc包。
go install -x qtrcc/main.go //Qt的rcc包。

 

具体工具的使用教程: https://github.com/therecipe/qt/wiki/Available-Tools

5. 测试

#获取测试代码
go get -d -v github.com/therecipe/examples/...
cd $GOPATH/src/github.com/therecipe/examples
qtdeploy test desktop ./basic/widgets //执行

测试相关的教程:https://github.com/therecipe/qt/wiki/Getting-Started

效果如下:
6. 测试感想

测试了几个案例,编译的过程有点慢。可能是文件太多了,调用的东西也多。

需要点C++的基础,可能上手更快。

 

PHP过滤掉非utf8字符

开发生成XML的时候,发现里面有一些特殊字符,比如  ,在网上找到好多的过滤utf8的方法,都没有成功。只能靠自己来实现 PHP过滤非UTF8字符。

一、思想

1、先将utf8的字符替换为英文逗号。

2、通过英文逗号分隔为数组。

3、过滤出来特殊字符。

4、str_replace 查找替换特殊字符。

继续阅读

使用XHProf进行线上PHP性能追踪及分析

今天介绍下大家并不陌生的XHProf。它是Facebook开发的用来分析线上PHP性能的工具。相比较于Xdebug,占用内存和性能更低。

1.XHProf安装


# wget http://pecl.php.net/get/xhprof-0.9.4.tgz
# tar zxvf xhprof-0.9.4.tgz
# cd xhprof-0.9.4/extension/
# phpize //结合自己的环境确认phpize的目录
# ./configure --with-php-config=/usr/local/php/bin/php-config //结合自己的环境确认phpize的目录
# make
# make install

安装完成后,在php.ini中添加 extension=xhprof.so。

重启下web应用服务器。

继续阅读

使用Anemometer基于pt-query-digest将MySQL慢查询日志可视化

MySQL慢查询日志分析工具不少,比如:

1、mysqldumpslow,MySQL官方提供。

2、mysqlsla,hackmysql.com推出的一款日志分析工具。功能非常强大,数据报表,非常有利于慢查询分析,包括执行频率、数据量和查询消耗等。

虽然都可以满足日常的使用,但是不够直观,并且无法方便开发人员进一步完善SQL语句。

pt-query-digest

是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。

Anemometer

将MySQL慢查询log可视化。

MySQL开启慢查询日志

不同的版本,MySQL开启慢查询日志方式有点不同。可以通过


#show variables like '%slow%'

命令查看都需要配置哪些参数。以5.6版本为例,修改my.cnf的数据库配置文件


slow_query_log = ON
slow_launch_time = 2
slow_query_log_file = /自定义日志目录/mysql-slow.log
log_queries_not_using_indexes = 1 //没有使用到索引的查询也将被记录在日志中

继续阅读

GDB调试C语言的常用命令

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,Linux开发人员必备的技能之一。长时间不使用命令很容易忘记,做下记录。

GDB功能

1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、动态的改变你程序的执行环境。

GDB的启动

将调试信息加入到可执行文件中。使用-g命令可以实现。如下:

 

#gcc -g pointer.c -o pointer.out

如果没有-g,将看不见程序的函数名和变量名,代替它们的全是运行时的内存地址。当用-g把调试信息加入,并成功编译目标代码以后,看看如何用gdb来调试。

继续阅读