2020年12月

brew 是 macOS 下流行的包管理工具,可以方便的安装各种工具。

brew 默认安装路径为:/usr/local/Cellar,然后会在 /usr/local/opt/ 建立所安装的包的软连接。

包安装好后如果不能正常执行,可以建立包的可执行程序的软连接到:/usr/local/bin/ 目录。

比如安装 openssl:

brew install openssl

安装后包的路径为:/usr/local/Cellar/[email protected]/1.1.1h。同时包的软连接在:/usr/local/Cellar/openssl

这时候执行命令:

openssl version

返回的并不是刚才安装的版本,而是系统自带的老版本的。这时候可以建立可执行程序的软连接到对应路径:

ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl

这时候执行命令就可以得到正确的返回:

openssl version
//OpenSSL 1.1.1h  22 Sep 2020

其他包的模式和此类似。

最近研究了下 QT 如何访问网络,做一些简单总结。

首先在 pro 文件内定义网络属性:

QT  += network

如果需要连接 https 需要安装 openssl 工具,使用 QT 的 MaintenanceTool 工具找到 openssl toolkit 并安装。否则执行程序时 ssl 会报错。

安装后需要将 openssl 路径加入系统 PATH,默认安装路径为:Qt/Tools/OpenSSL。根据需要将对应系统版本的 bin 路径加入 PATH 如:C:\Qt\Tools\OpenSSL\Win_x86\bin,里面包含相关 lib 库文件。添加方法参考:https://blog.niekun.net/archives/413.html。

- 阅读剩余部分 -

在实际使用中发现对字符串的运用是一个容易混乱的地方,尤其是使用指针指向一个字符串数组的时候。下面做一些简单分析。

一个简单的测试:

    const char* test1 = "abc";
    const string test2 = "abc";

    cout << test1 << endl;
    cout << *test1 << endl;
    cout << test2 << endl;
    cout << sizeof (test1) << endl;
    cout << sizeof (test2) << endl;

输出如下:

abc
a
abc
8
24

- 阅读剩余部分 -

在 Windows 下可以使用 QT 部署工具:windeployqt 来自动提取可执行程序的依赖库,在 macOS 下同样有部署工具:macdeployqt 实现相同的功能。

工具路径在 QT 安装目录的对应编译器 bin 目录下,如:/Users/marconie/Qt/5.15.2/clang_64/bin/macdeployqt

为了方便使用建议将 bin 目录添加到系统 PATH 中,我的终端是 zsh 添加方法如下:

打开 ~/.zshrc 添加如下内容,可以使用 vim 来操作:

export PATH=$PATH:/Users/marconie/Qt/5.15.2/clang_64/bin

编辑完成后关闭文件,刷新源:

source ~/.zshrc

现在就可以直接使用命令了:

macdeployqt -h

- 阅读剩余部分 -

如果要在 QT 中使用第三方库,需要将相关库文件路径写入项目 pro 文件内,有两种方式:GUI 对话框添加或直接编辑 pro 文件。

GUI 添加

使用 GUI 添加的好处是比较直观,使用鼠标点击即可。

右键项目名称,点击 add library:
1.jpg

- 阅读剩余部分 -