无需Qt Creator编译Spot-On加密套件即时通讯工具的方法问询
解决Spot-On加密套件qmake编译无二进制文件生成问题
问题背景
我尝试通过qmake终端编译Spot-On加密套件,完成了依赖配置、源码获取、qmake构建等步骤,但调整系统配置和包管理器命令后,始终没生成预期的二进制文件。项目主spot-on.pro文件内容如下:
cache() doxygen.commands = doxygen spot-on.doxygen purge.commands = rm -f */*~ *~ QMAKE_EXTRA_TARGETS = doxygen purge SUBDIRS = Kernel/spot-on-kernel.pro spot-on-gui.pro TEMPLATE = subdirs
编译流程回顾
准备工作
- 操作系统:类Unix系统(Linux、macOS)
- 依赖项:
- gcc或其他C++编译器
- Qt 5及以上版本
- OpenSSL(加密功能依赖)
- qmake(Qt核心组件)
原编译步骤
- 安装依赖
- Debian/Ubuntu系:
sudo apt-get update sudo apt-get install build-essential qt5-default libssl-dev - Fedora系:
sudo dnf groupinstall "Development Tools" sudo dnf install qt5-qtbase-devel openssl-devel - macOS(使用Homebrew):
brew install qt openssl
- Debian/Ubuntu系:
- 下载源码
git clone https://github.com/textbrowser/spot-on.git - 进入源码目录
cd spot-on - 配置构建
qmake spot-on.pro - 编译项目
make - 运行程序(原预期命令)
./spot-on
已排查问题
- 路径问题:确认qmake和编译器在系统PATH中,若找不到可指定完整路径:
/path/to/qt/bin/qmake spot-on.pro - Qt版本:确保使用兼容的Qt5+版本,多版本共存时指定正确的qmake路径
- 库链接问题:确认OpenSSL等依赖库已正确安装且路径配置无误
自动化编译脚本(Debian系)
#!/bin/bash # 安装依赖 sudo apt-get update sudo apt-get install -y build-essential qt5-default libssl-dev git # 克隆仓库 git clone https://github.com/textbrowser/spot-on.git cd spot-on # 配置构建 qmake spot-on.pro # 编译应用 make # 运行应用(原预期路径,实际需调整) ./spot-on
问题根源与解决方法
从主spot-on.pro的TEMPLATE = subdirs可以看出,这是一个多子模块项目:
- 项目分为内核模块(
Kernel/spot-on-kernel.pro)和GUI模块(spot-on-gui.pro) - 编译完成后,二进制文件不会生成在项目根目录,而是存放在各自的子模块目录中
修正后的运行步骤
- 按原流程完成
qmake和make编译 - 进入GUI子目录运行程序:
cd spot-on-gui/ ./spot-on - (可选)将可执行文件复制到根目录方便调用:
cp spot-on-gui/spot-on ./ ./spot-on
额外排查建议
- 如果子模块编译失败,可单独进入子目录执行
qmake和make,定位具体错误 - 确保Qt的GUI组件已安装(
qt5-default通常包含,但精简系统可能需要单独安装qt5-qmake或qtbase5-dev)
内容的提问来源于stack exchange,提问作者Curio
相关产品推荐
相关产品推荐

