Live555的代码编译及库文件安装位置

#!/bin/bash
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)

export CPLUS_INCLUDE_PATH=${path_script}/../openssl/unix/include:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=${path_script}/../openssl/unix/include:$C_INCLUDE_PATH
export LD_LIBRARY_PATH=${path_script}/../openssl/unix/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=${path_script}/../openssl/unix/lib:$LIBRARY_PATH

rm -rf ${path_script}/unix

rm -rf ${path_script}/build
mkdir ${path_script}/build && \
  cd ${path_script}/live555-2c92a57/ && \
  ./genMakefiles linux-no-openssl &&\
  make clean &&\
  make && \
  make install DESTDIR=${path_script}/unix &&\
  mv ${path_script}/unix/usr/local/* ${path_script}/unix/ && \
  rm -rf ${path_script}/unix/usr
  
  
核心点:
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/ssl/include
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/ssl/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ssl/lib
make install DESTDIR=${path_script}/unix &&\

比特大陆的双网口动静态IP配置

linaro@bm1684:~$ cat /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet dhcp
iface eth0 inet static
      address 192.168.4.168
      netmask 255.255.254.0

linaro@bm1684:~$ cat /etc/network/interfaces.d/eth1
auto eth1
iface eth1 inet static
      address 192.168.4.169
      netmask 255.255.254.0
      gateway 192.168.4.1 这个可能会干扰上网
      dns-nameservers 192.168.4.1

CLion2019.3.x远程调试

因为调试比特大陆的盒子,故玩一波远程调试。
1.在Toolchains新增一个工具链。

2.在Deployment找到上图上添加的RemoteHost的配置。

3.在CMake的选项,Toolchain的选项中,选择之前的Remotehost配置。

在构建选项中,选择se5的选项,至此完成远程调试的全部配置。

Ubuntu关闭休眠模式

查看休眠模式的情况。

systemctl status sleep.target
如果显示sleep的状态为loaded,表示休眠是处于开启状态。

systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
关闭休眠模式。

systemctl status sleep.target查看是否休眠

安装lightdm后,无法快捷键锁屏问题

因为向日葵必须是lightdm环境,故自安装lightdm后,发现无法快捷健锁屏,可有以两种方法解决。

1.切换回gdm3的桌面环境。

sudo dpkg-reconfigure gdm3

2.在系统中增加自定义快捷键。

Name: dm-tool lock
Command: dm-tool lock
ShortCut: Window+L

Qt连接远程数据库的优化方案

Qt内部提供的MySQL连接方案是内部插件QMYSQL的,如果在连接配置不当时长时间空闲时,会导致线程琐死,主要原因mysql_stmt_prepare这个函数阻塞了线程,导致一直不返回.
默认的情况下,以下参数都是0,我们需要设置一个时间,让其超时返回.
MYSQL_OPT_RECONNECT=1;
MYSQL_OPT_CONNECT_TIMEOUT=10;
MYSQL_OPT_READ_TIMEOUT=10;
MYSQL_OPT_WRITE_TIMEOUT=10
此外,我们还需要增加一个定时轮循的健康检查函数,避免长时间空闲而自动断开,从而导致访问超时重连的异常处理.
健康检查的SQL语句是: select 1 as result;这个SQL不涉及表操作,性能很高,能正确返回1即可.

db = QSqlDatabase::addDatabase(driver, connectionName);
        QString hostName = QKgSettings::value("Mysql/hostName", "127.0.0.1").toString();
        int port = QKgSettings::value("Mysql/port", 3306).toInt();
        QString userName = QKgSettings::value("Mysql/userName", "test").toString();
        QString password = QKgSettings::value("Mysql/password", "123").toString();
        QString database = QKgSettings::value("Mysql/database", "woall").toString();
        db.setConnectOptions("MYSQL_OPT_RECONNECT=1;MYSQL_OPT_CONNECT_TIMEOUT=10;MYSQL_OPT_READ_TIMEOUT=10;MYSQL_OPT_WRITE_TIMEOUT=10");
        db.setHostName(hostName);
        db.setPort(port);
        db.setUserName(userName);
        db.setPassword(password);
        db.setDatabaseName(database);
        if(!db.open()) {
            return db;
        }

GoLang的配置

GoLang-2019.3.4的版本

export GOROOT=/go-1.19.12
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOPATH=/home/working/goapp
export GOPROXY=https://goproxy.cn,https://goproxy.io,direct

export PATH=$PATH:/node-v14.18.2/bin:/cmake-3.24.2/bin
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

修改高版本SDK适配

http://www.kxtry.com/archives/3832