当前位置: 首页 > 编程日记 > 正文

linux qml 环境,利用Qml与Golang打造Gui客户端(二)qamel环境安装

由于种种原因,放弃了therecipe/qt,转向了更为轻量级的qamel,这个库的安装非常简单,跟随着以下步骤就能解决

安装

安装qamel非常简单,只需要go get -v github.com/go-qamel/qamel即可。如果一切顺利,将会自动编译出qamel工具并放置在$GOPATH/bin中。

如果由于网络原因安装失败,你也可以选择手动编译安装qamel工具

首先clone项目到任意文件夹中git clone https://github.com/go-qamel/qamel.git,完成之后进入文件夹中的cmd目录并用go mod进行初始化。这是为了避免网络原因下载第三方包速度过慢。初始之后就可以直接进行go build -o qamel进行编译,一切正常之后将qamel放进$PATH中。

设置

qamel和therecipe/qt一样,在使用之前需要设置环境变量和一些其他的东西,按照官方wiki的说法首先需要qamel profile setup设置,qamel的设置非常人性化,每一步都有详细的介绍,如实填写即可。

$ qamel profile setup

Thanks for using qamel, QML's binding for Go.

Please specify the target OS for this profile. Possible values are "windows", "linux" and "darwin".

Keep it empty to use your system OS.

// 选择操作系统

Target OS (default windows) : linux

Please specify the target architecture for this profile. Possible values are "386" and "amd64".

Keep it empty to use your system architecture.

// 选择系统架构,amd64指64位系统

Target arch (default amd64) : amd64

Please specify whether this profile used to build static or shared app.

// 选择今后编译生成的软件类型,本地还是可分享

Use static mode (y/n, default n) : n

Please specify the *full path* to your Qt's tools directory.

This might be different depending on your platform or your target. For example, in Linux with Qt 5.11.1, the tools are located in $HOME/Qt5.11.1/5.11.1/gcc_64/bin/

// 输入qt环境变量

Qt tools dir : $HOME/Qt5.13.0/5.13.0/gcc_64/bin/

qmake : found

moc : found

rcc : found

Please specify the *full path* to your compiler.

Keep it empty to use the default compiler on your system.

// 确认路径是否正确,正确则直接回车,不正确修改路径

C compiler (default gcc.exe) : C:\Qt\Qt5.12.0\Tools\mingw730_64\bin\gcc.exe

C++ compiler (default g++.exe) : C:\Qt\Qt5.12.0\Tools\mingw730_64\bin\g++.exe

Objdump (default objdump.exe) : C:\Qt\Qt5.12.0\Tools\mingw730_64\bin\objdump.exe

// 如果你是windows系统,还需要配置windres路径

Since you are targeting Windows, you might want to set icon for your executable file. To do so, please specify the *full path* to windres on your system. It's usually located in the directory where MinGW is installed.

Path to windres : C:\Qt\Qt5.12.0\Tools\mingw730_64\bin\windres.exe

Generating some code for binding...done

Saving profile default...done

Setup finished.

Now you can get started on your own QML app.

到这qamel的安装配置就完成了,可以qamel profile print查看一下配置是否正确

编译

按照官方wiki,qamel支持交叉编译,但仅仅支持Linux和Windows。

Linux To Linux

qamel build (这里用的是上述的默认linux配置)

Linux To Windows

要在Linux编译Windows程序(默认64位)需要安装一个MXE插件

git clone https://github.com/mxe/mxe.git /home/radhi/MXE

cd /home/radhi/MXE

make MXE_TARGETS="x86_64-w64-mingw32.shared" cc Cairo harfbuzz qt5

然后再建立一个新的配置qamel profile setup win_64,在最后选择windres的时候选择MXE路径中的/usr/bin/x86_64-w64-mingw32.shared-windes即可

最后编译qamel build -p win_64

Docker

为了方便编译,qamel也提供了docker镜像,在拉取镜像之后就可以进行编译了。

如Linux编译Windows64位程序只需要拉取tag为win64即可,然后进行编译qamel locker build -p win64

要注意的是,官方docker中的qt版本是5.12,如果有新特性可能编译不能通过,而且中文环境输入有问题建议自行建立交叉编译环境

相关文章:

uboot readme 文件 (1)

Software Configuration:软件的配置Configuration is usually done using C preprocessor defines; therationale behind that is to avoid dead code whenever possible.使用c的预处理 避免 “dead code” 两种配置变量There are two classes of configuration variables: * C…

青少年编程竞赛交流群周报(第040周)

2021年12月05日(周日)晚20:00我们在青少年编程竞赛交流群开展了第四十期直播活动。 一、直播内容 我们直播活动的主要内容如下: 讲解了上次测试中小朋友们做错的题目 Scratch青少年编程能力等级测试模拟题(四级)。演…

用Cordova打包Vue-vux项目

技术搭建:vue vux 首先推荐阅读这篇文章,写的已经很详细了:https://www.jianshu.com/p/25d797b983cd 此处记录下我按照这篇文章打包的时候报的一些错误,方便大家借鉴: 1、当执行最后一步 cordova build android 时&a…

linux mpp集群环境,Linux环境下,DM8-MPP两节点集群搭建

目录1.主备库,监视器信息部署2.初始化数据库实例3.启停数据库4.数据库备份与还原5.检查、修改和创建配置文件6.启动数据库,修改数据库模式和OGUID8.配置守护进程9.配置监视器10.启动守护进程11.启动监视器1.主备库,监视器信息部署(1)主库实例…

线性代数 2021-2022-1 考试要点

1、线性方程组解的判定、解的结构与求解; 2、矩阵秩的相关性质; 3、矩阵、分块矩阵的运算; 4、行列式的运算; 5、矩阵方程的求解; 6、向量空间(RnR^nRn空间,多项式空间,矩阵空间…

JavaServer Faces技术

一、JSF是构建Java Web程序的服务器端的组件框架,包括: 1)一个API,用来表示组件及管理他们的状态;处理事件;服务器端;数据转换;定义页面导航;支持国际化和可访问性&#…

Ubuntu安装Anaconda

安装Anaconda的最简单方法是下载最新的Anaconda安装程序bash脚本,然后运行它。 在Anaconda Downloads页面找到最新版本的Anaconda for Python 3 。当前最新版本为5.1.0。 切换到/tmp服务器上的目录 cd /tmp 在运行它之后可以删除掉。 使用wget命令下载anaconda安装包…

linux制作共享服务器,Linux如何制作一个简单的共享服务器

Linux下打开一个终端,cd 到某一个目录下,输入“ python -m SimpleHTTPServer ”,就可以将当前目录下的内容分享出去,如下:linuxidc www.linuxidc.com:~$ cd VideoSpace/linuxidc www.linuxidc.com:~/VideoSpace$ pytho…

报表应用系列——图表JFreeChart: 第 4 章 折线图

双击代码全选12345DefaultCategoryDataset dataset  new DefaultCategoryDataset(); dataset.addValue(100, "Jan", "Spring Security"); dataset.addValue(150, "Jan", "jBPM 4"); dataset.addValue(300, "Jan&qu…

中国电子学会青少年编程能力等级测试图形化四级编程题:小猴数草莓

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老…

python_day16_pythom-mysql-API

16、py_mysql操作 pymysql 是python中操作mysql的模块,其使用方法和py2的mysqldb几乎相同 16.1、pymysql模块安装 1. pip install pymysql 16.2、使用 16.2.1、导入模块 import pymysql connpymysql.connect(host127.0.0.1,port3306,userroot,passwdxiong,dbs1) #…

linux打开 root .m2,小辣椒M2 (LA-M2)获取ROOT权限教程,新手root必看

小辣椒M2 (LA-M2)如何获取ROOT权限?用什么ROOT工具最简单?请跟着小编一起来看看如何用奇兔刷机对小辣椒M2 (LA-M2)进行一键ROOT,小编特别亲手制作了详细的小辣椒M2 (LA-M2) ROOT教程图解,非常适合初次接触ROOT的朋友,具体步骤如下&#xff…

C++中typedef和define的区别

typedef和#define的用法与区别 一、typedef的用法 在C/C语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT;typedef int …

SVN 钩子操作-同步更新web目录

一个简单的钩子演示:也可以网上搜索其他高级的 本次想要达到的功能是:每次用户commit 到仓库后,仓库的钩子会自动把程序又更新的www/的web发布目录 1.现在web目录下创建一个test.com网站目录 [rootwentao13 ~]# cd /var/www/html/ [rootwenta…

【组队学习】【32期】深入理解计算机系统

深入理解计算机系统 航路开辟者:李岳昆、易远哲领航员:初晓宇航海士:叶前坤、沈豪 基本信息 开源内容:https://github.com/datawhalechina/team-learning-program/tree/master/ComputerSystems内容属性:公测课程内容…

linux中怎么退出执行过程,(进程)处理过程中的Linux:从执行到退出

Linux是一个多任务操作系统,表面上看,同时运行许多任务——即进程。每一个进程都在系统中留下足迹。这里介绍一些检查这些足迹的工具,并且还要说明蔓延的/proc目录到底是什么。欢迎归来。上周我们考察Linux调度程序如何区分要运行的进程的优先…

git - 简易指南

http://www.bootcss.com/p/git-guide/转载于:https://www.cnblogs.com/passer1991/p/3279333.html

python爬虫 智联招聘 工作地点

需求:智联上找工作的时候,工作地点在搜索页面只能看到城市-区。看不到具体的地址。(离家近的工作肯定优先考虑)思路:爬取搜索页面(页面一)然后进去其中一个内页,再爬工作地点&#x…

2021-2022-1 线性代数知识点总结的视频

01 线性方程组02 矩阵及其运算03 向量空间(上)03 向量空间(下)04 特征值与特征向量05 实对称矩阵与二次型2021 线性代数 第三章 习题课2021 线性代数 第四章 习题课2021-2022-1 线性代数考试要点2021-2022-1 线性代数知识点总结 …

win使用linux共享打印机,Ubuntu 12.04以及 Window 下使用共享打印机

目前针对各个办公室里面都已经配置打印机了,为了节约资源,该打印机想必已经被网管设置成了共享,然而我们应该如何进行使用呢?笔者目前常用的系统是Ubuntu 12.04,偶尔想打印东西的不想切换到XP系统下,就此简单介绍下如何…

poj3280Cheapest Palindrome(记忆化)

链接 真的1A了。。 一开始想复杂了 想着补全再删 没想好 后来想到递归 大的回文串是由小的推过来的 一直递归下去 对于当前的i&#xff0c;j可以选择保留或者删除 选个最小的 1 #include <iostream>2 #include<cstring>3 #include<algorithm>4 #include<…

【组队学习】【32期】推荐系统-新闻推荐系统实践

推荐系统-新闻推荐系统实践 航路开辟者&#xff1a;罗如意领航员&#xff1a;肖桐航海士&#xff1a;汪志鸿、吴忠强、赖敏材、王辰玥、毛伟、宋禹成、陈雨龙、管柯琴 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/fun-rec内容属性&#xff1a;公测课程…

Redis配置到本地以及可视化工具的安装运用

配置到本地出错&#xff1a; 解决方法&#xff1a; 1、先把原来的服务删除了 2、在重新配置服务。 真的&#xff0c;我就是这样的。。 转载于:https://www.cnblogs.com/stujike/p/8672165.html

linux消息通信无法接收,进程间通信:消息队列有关问题:进程1接收不到进程2的消息...

进程间通信&#xff1a;消息队列有关问题&#xff1a;进程1接收不到进程2的消息进程间通信&#xff1a;消息队列有关问题&#xff1a;进程1接收不到进程2的消息日期&#xff1a;2014-05-16  浏览次数&#xff1a;20365 次进程间通信&#xff1a;消息队列问题&#xff1a;进程1…

java听课笔记(四)

程序流程控制 分支 顺序 循环 if switch&case 1 2 3 调整 break 1.6 前 switch(byte、short、char、int) 1.7 可放String 循环 while&#xff08;次数不确定&#xff09; do while for&#xff08;确定次数&#xff09; break&#xff08;跳出本层循环&#xff09; continu…

【组队学习】【32期】scikit-learn教程

scikit-learn教程 航路开辟者&#xff1a;江季领航员&#xff1a;李牧轩航海士&#xff1a;武帅、陈宇 基本信息 开源内容&#xff1a;&#xff1a;https://github.com/datawhalechina/machine-learning-toy-code/tree/main/ml-with-sklearn内容属性&#xff1a;公测课程内容…

css一个很好用的hover显示

之前一直想在样式实现&#xff0c;hover时显示其他div&#xff0c;今天终于找到了&#xff0c;(*^▽^*).a悬停时显示.b.a:hover .b {display: block;}转载于:https://www.cnblogs.com/HCXiao/p/8677713.html

c语言输入函数有什么作用,c语言的输入函数有哪些

c语言的输入函数有&#xff1a;1、scanf()函数、从标准输入stdin读取格式化输入&#xff1b;2、getchar()函数&#xff0c;从标准输入stdin获取一个字符&#xff1b;3、gets()函数&#xff0c;从标准输入stdin读取一行&#xff1b;4、getch()函数。【相关学习推荐&#xff1a;C…

dubbo学习过程、使用经验分享及实现原理简单介绍

一、前言部门去年年中开始各种改造&#xff0c;第一步是模块服务化&#xff0c;这边初选dubbo试用在一些非重要模块上&#xff0c;慢慢引入到一些稍微重要的功能上&#xff0c;半年时间&#xff0c;学习过程及线上使用遇到的些问题在此总结下。整理这篇文章差不多花了两天半时间…

AutoIt脚本在做自动化操作的时候,如何进行错误捕获?

我的自动化脚本在运行的时候&#xff0c;会生成一个界面&#xff0c;点击该页面上的按钮能够进行自动化操作。 经常遇到的一个问题是&#xff1a; 脚本运行一半&#xff0c;GUI程序出现了异常情况&#xff0c;这个时候&#xff0c;再次点击生成的界面上的按钮&#xff0c;不会有…