阡陌 发布的文章

阡陌

解决 glibc 库版本不匹配的问题

使用高版本的 GCC 编译的程序在低版本 glibc 的机器上运行的时候会提示: libc.so.6: version 'GLIBC_2.14' not found 之类的错误,这是因为 GCC 所连接的 glibc 版本高于目标系统的 glibc 的版本。查看 libc.so.6 所支持的版本的方法: strings /lib/libc.so.6 | grep GLIBC_。 解决这一问题要么升级系统的 libc,要么使程序使用自己的一套 libc 。如果选择后者,需要在连接的时候指定库的优先搜索位置。并且还要指定 ld-linux.so 的位置,否则会提示段错误 Segmentation fault。 QMAKE_LINK += -Wl,-rpath=./lib:/usr/local/bs230/lib -Wl,-dynamic-linker=/usr/local/bs230/lib/ld-linux.so.3 注意:使用相对路径时所相对的是执行者所在的位置(pwd) 比如在 /home 调用 /usr/local/bs230/bsinfo 会在查找 /home/lib 文件夾,而不是 /usr/local/bs230/l...

关于硬盘的几个概念

Disk(盘片) 光盘、磁盘等等碟形物,计算机领域常指磁盘,软盘、硬盘等。 Hard Disk(硬盘) 磁盘的一种,这里以它作为主要对象来说说。 Track(磁道) 盘面可以划分出若干同心圆环,每个圆环是一个磁...

编译用于在 Windows 系统下开发 ARM Linux 的 Qt 库

1、在 https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ 下载 Windows 版 ARM 交叉编译工具链。 Sourcery CodeBench Lite Edition Sourcery CodeBench Lite Edition is a free, unsupported version of Sourcery CodeBench, available for select processors. Sourcery CodeBench is a complete development environment for embedded C/C++ development. Sourcery CodeBench Lite Edition includes: GNU C and C++ compilers GNU assembler and linker C and C++ runtime libraries GNU debugger 我使用的是 arm-2014.05-29-arm-none-linux-gnuea...

macOS 安装双系统后系统盘在启动时不见了怎么办

MacBook 安装双系统后,系统盘在启动时(按 Option 键)不见了怎么办? 这是因为 Mac 系统盘的分区类型 GUID 错误所致,改成正确的(48465300-0000-11AA-AA11-00306543ECAC)即可: 在 Windows 系统里打开 CMD,执行 diskpart,子命令如下: list disk select disk 0 list partition select partition 2 set id=48465300-0000-11AA-AA11-00306543ECA...

iF.SVNAdmin 安装和使用笔记

iF.SVNAdmin 是一个基于 Web 的 GUI(图形用户界面)工具,用于管理 Subversion 的库和授权文件。 安装 Apache: yum -y install mod_dav_svn #apache svn支持模块 安装 PHP: yum -y install php 安装 Subversion yum -y install subversion svnserve --version #查看版本信息,测试安装是否成功 安装 iF.SVNAdmin: wget https://github.com/mfreiholz/iF.SVNAdmin/archive/stable-1.6.2.tar.gz tar -zxf stable-1.6.2.tar.gz mv iF.SVNAdmin-stable-1.6.2/ /data/svnadmin/ chown -R apache:apache /data/svnadmin/ 在 /etc/httpd/conf.d/ 创建一个虚拟服务器配置:svnadmin-vhost.conf Listen 888 <VirtualHost 192.168.72.100:888>   ServerAdmin name@email.com   ServerName 192.168.72.100   ErrorLog /etc/httpd/logs/svnadmin-error_log   TransferLog /etc/httpd/logs/svnadmin-access_log     SSLEngine on   SSLCertificateFile /data/ssl/localhost.crt   SSLCertificateKeyFile /data/ssl/localhost.key   DocumentRoot /data/svnadmin   <Directory "/data/svnadmin">     Options FollowSymLinks     AllowOverride all     Require all granted   </Directory>   Alias /svn /var/www/svn1   <Location /svn>      DAV svn     SVNParentPath /data/svn1     AuthzSVNAccessFile /data/svn1/authz     AuthUserFile /data/svn1/htpasswd      AuthName "Subversion Repositories"     AuthType Basic     Require valid-user   </Location> </VirtualHost> 创建服务目录: mkdir /data/svn1 touch /data/svn1/authz touch /data/svn1/htpasswd chown -R apache:apache /data/svn1 禁用 SELinux: setenforce 0 #临时关闭 vim /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled #需要重启 配置防火墙: firewall-cmd --permanent --add-port=888/tcp systemctl restart firewalld systemctl restart httpd.service 打开网页 https://192.168.72.100:888,跳转到初始化配置页面,配置如下: Subversion authorization file: /data/svn1/authz User view provider type: passwd User edit provider type: passwd Group view provider type: svnauthfile Group edit provider type: svnauthfile Repository view provider type: svnclient Repository edit provider type: svnclient User authentication file (SVNUserFile): /data/svn1/htpasswd Parent directory of the repositories (SVNParentPath): /data/svn1 Subversion client executable: /usr/bin/svn Subversion admin executable: /usr/bin/svnadmin 保存配置,提示自动生成管理员账户和密码:User: admin ,Password: admin 编辑配置文件: vim /data/svnadmin/data/config.ini 在[GUI]下增加一行: ApacheDirectoryListing=https://192.168.72.100:888/svn/%1/%2 源码修改记录: function xml_svn_list_character_data($xml_parser, $tagdata) 中的 $this->curList->curEntry->name.= self::encode_string(trim($tagdata));   trim函数会使 “01 测试”类似的字符与汉字间的空格也被清掉,临时换用ltrim来解决这个问题。 改为: $this->curList->curEntry->name.= self::encode_string(ltrim($tagdata)); 中文库名的支持: 从 1.7 版本开始使用 Apache + SVN,虽然在默认的情况下,mod_dav_svn 支持库内出现非纯英文命名的文件夹或文件名,但是一直不支持库名中出现非纯英文的字符。 试了很多方法都不能解决,偶然间了解到 mod_dav_svn 使用 7 位的 ASCII 编码与其钩子脚本交互,所以对于 UTF-8 等多字节的编码是不支持的,所以总会出现 Internal error: Can't convert string from 'UTF-8' to native encoding,即使库名已经使用了 UTF-8 编码也不行。 从 1.8 版本开始支持 SVNUseUTF8 On|Off 配置,在 httpd.conf 中添加一行: SVNUseUTF8 On 就可以支持中文的库名...

Keka 一款 MAC 下的 7-Zip 压缩解压缩软件

如果你习惯了使用 zip 格式的压缩文档,那么 MAC 自带的 Archive Utility 已经可以很好地满足你的需求。但对于要与多种压缩格式尤其是 7z 格式压缩文档打交道的我来说,还远远不够。 对于压缩/解压缩软件作为文档转换工具来讲,其实不需要多么美妙的界面,简洁实用才是最重要的。最简洁的形式莫过于直接使用命令行来压缩和解压缩文...

brew 给 MAC 插上 yum 的翅膀

什么是 brew? 如果你在羡慕 yum、apt-get 给 Linux 系统带来的便捷,不妨装上 brew 。还不明白它是做什么的?brew 全称为 Homebrew,官网( http://brew.sh/ )给它的定位是这样的: The missing package manager for OS X. Homebrew installs the stuff you need that Apple didn’t. brew 可以自动解决软件包的依赖关系,方便软件包的安装、更新和卸载。可以称得上是 MAC 系统中的一大神...

ATX 电源

ATX 电源是目前台式计算机所使用的主流电源,ATX(AT Extend)是 Intel 公司于 1995 年提出的一个工业标准。因为使用广泛,在做一些电子制作时直接使用 ATX 电源会带来不少的方便。 ATX 电源有多组输出,这是其中的一组,24 Pins 的主板供电连接器...

启用 PT632 G_2 光猫的路由功能

小米路由器在使用拨号功能上网的时候总是出现虽然有 WiFi 信号在发射,但无论内网还是外网,有线还是无线,都连不上的尴尬状态。唯有断电重启路由器才能解决,等了几个版本,都没有修复这么严重的问题。说实在的,几百块钱的小米路由器跟几十块钱的路由器摆在一起,只能算得上是一个花瓶。 电信安装的光猫终端(友华 PT632 G_2)默认只是调制解调器的功能,但其实是具备完整的路由器功能的。于是打算让小米路由器退居二线,做二级路由算...

Qt 5.6 静态编译

起因 想要发布一个 Qt 小软件,但不得不附带一批动态链接库是件不爽的事情。以前介绍过一种方法,将动态链接库打包到可执行程序文件中去,实现单文件化(Qt 之可执行文件单文件化)。目的虽然达到了,但很有可能被某些杀毒软件、某某管家之类的给识别成病毒、木马,还是不爽...