作者归档:xinlu

CMAKE增加Debug的后缀

set_target_properties(ptyqt-agent PROPERTIES DEBUG_POSTFIX "d")
set_target_properties(ptyqt PROPERTIES DEBUG_POSTFIX "d")
而 set(CMAKE_DEBUG_POSTFIX "d") 仅对add_library这类会增加后缀,而add_executable这种是不行的。

如何设置修改Qt配置,使其支持指定的WindowSDK。

在开发过程中需要实现ConPTY的支持,故不得不指定WindowsSDK进行编译。

ConPTY的支持是从Window10的1809系统版本开始,据网友实测,从Windows 10 SDK version 1903 (10.0.18362.1)版本才支持ConPTY,其下载地址:https://software-static.download.prss.microsoft.com/pr/download/18362.1.190318-1202.19h1_release_WindowsSDK.iso
在小于1903的SDK版本中编译ConPTY代码,是可以编译通过的,但实际上是无法启用ConPTY的。

以下方法不是最佳方法,且也只能解决pro工程问题,而cmake类的编译,貌似无法解决。

QtCreator是不支持设置WindowSDK版本的,那该如何修改使其支持呢?以VS2015为例如下所示:

我们打开vcvarsall.bat的批处理文件,因为Qt已经初始化了目标平台的指令如x86,故我们修改的位置如下:

if "%1" == "" goto x86

rem 屏蔽goto指令
rem if "%2" == "" goto check_platform  

rem 增加以下call指令
if "%2" == "" (
    echo "In order to specify the SDK version for compilation, the following instructions will be rewritten."
    echo "If an error is reported, please check whether your SDK version number is correct."
    echo "The new command as bellow:"
    echo "%~0 %1 10.0.18362.0"
    call "%~0" %1 10.0.18362.0
    goto :eof
)
setlocal
set _Argument2=%2
if not "%2"=="store" if not "%2"=="8.1" if not "%_Argument2:~0,3%"=="10."  goto usage
endlocal

若命令行编译呢?则可如下所示:

@echo off
if "%QT_TOOLCHAIN%" == "" (    
    echo "failed to find the environment variable:QT_TOOLCHAIN"
    echo "add varianble to environment like: QT_TOOCHAIN=C:\Qt\Qt5.12.12\5.12.12\msvc2017"   
    pause 
    exit
)

echo %QT_TOOLCHAIN%|find "msvc2015" >nul
if %errorlevel% neq 0 (
    call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 10.0.18362.0
) else (
    call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 10.0.18362.0
)
call "%QT_TOOLCHAIN%\bin\qtenv2.bat"

当前最新版本:Windows 10 SDK version 2104 (10.0.20348.0)也仍是支持WINDOW 7

QT中文乱码问题汇集

QT编译时提示以下信息:

其核心原因呢,是因为编码问题,Qt Creator保存的文件使用的是UTF-8编码(是任何平台、任何语言都可以使用的跨平台的字符集),MSVC编译器虽然可以正常编译带BOM的UTF-8编码的源文件,但是生成的可执行文件的编码是 Windows 本地字符集,比如 GBK2312。

也就是在可执行文件中,字符串“测试”是以GBK2312编码的,而可执行程序执行到这条语句时,对这个字符串却是以UTF-8解码的,这样就会出现乱码。

解决办法如下:
第一步:确保编辑器是以UTF8形式编码保存。

第二步:在pro文件或CMakeFiles中添加编译选项,确保编译器编译的目标结果仍是utf8编码模式。

在pro文件中添加
win32:msvc{
QMAKE_CXXFLAGS += /source-charset:utf-8 /execution-charset:utf-8
}
在cmake中添加
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")

SE5盒子的可用的软件源

更换中国科学技术大学的软件源

deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
deb http://mirrors.ustc.edu.cn/debian-security/ stable-security main non-free contrib
# deb-src http://mirrors.ustc.edu.cn/debian-security/ stable-security main non-free contrib

frpc的服务配置

/lib/systemd/system/frpc.service

# /lib/systemd/system/frpc.service
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp/frpc -c /data/config/frpc.ini
ExecReload=/opt/frp/frpc reload -c /data/config/frpc.ini

[Install]
WantedBy=multi-user.target
#cat /data/config/frpc.ini
[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000

[ssh19]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 1922

[19886]
type = tcp
local_ip = 127.0.0.1
local_port = 8886
remote_port = 19886

分卷压缩和解压

压缩文件太大不方便携带,即可使用分卷压缩和解压

tar -czf bmnnsdk2-bm1684_v2.7.0|split -d -b 512m - mybmnsdk2.7.0.tar.gz
-----
cat mybmnsdk2.7.0.tar.gz* | tar zxv

OpenCV的人脸检测+ncnn::Extractor特征提取

第一步:通过opencv或yolo进行人脸检测,获取人脸头像信息。

第二步:通过nccn::Extractor获取特征

https://github.com/Tencent/ncnn/

  • https://github.com/Tencent/ncnn
  • https://github.com/MegEngine/MegEngine
  • https://github.com/alibaba/tengine
  • https://github.com/OAID/Tengine
  • https://github.com/alibaba/MNN
  • https://github.com/Ewenwan/MVision

Dlib Resnet