作者dzwei (int* arr, size_t length)
看板C_and_CPP
标题[心得] Vcpkg+CMake+Qml好用的跨平台编译环境建置!
时间Sun Jan 5 01:34:29 2020
--------------------------
0.更新之处
--------------------------
2020.1.5 01:34 首次发文
--------------------------
1.前言
--------------------------
趁着当兵这个假日的空闲,
来发这篇文好了XD
本专案是玩票性质,
但因为小弟我想学东西,
内容有误还麻烦各位大大指正!
有问题也可以在下方留言
--------------------------
2.动机
--------------------------
写过C/C++以外的语言的人应该都知道
python有pip
rust有cargo
js有nodejs
...
等等。
C/C++好像没有这样好用的
跨平台(OS/HW)云端化的套件管理器
vcpkg也是我最近发现有此功能的工具之一
(虽然好像2016就有了QQ)
搭配CMake的find_package()
可以使整个专安有类似dependencies的功能
vcpkg收录了不少好用常见的C++ API
opencv, opencl等都有。
它会在git-reposity抓下专案的src,
再进行编译,
所以请事先架好一些编译环境
(MSVC GNU-GCC等)
vcpkg安装目录里,
有自己的一套路径,
很像Linux中usr的
bin, include, lib ...等等
cmake
-DCMAKE_TOOLCHAIN_FILE=C:/SDKs/vcpkg/scripts/buildsystems/vcpkg.cmake
.
上面这个指令,
会自动处理include, lib
也就是说在CMakelists.txt中基本上只要
find_package()这指令就够了
不用因电脑不同而重新更改include_path、link_path..等等那些有的没的
(这点很像Linux的/usr)
这也是vcpkg强大的地方之一
只要确认任bin东西已经在环境变数path里面
Link也不会有问题了
--------------------------
3.目的
--------------------------
以Vcpkg作为套件管理器,
以CMake取代QMake,
(QMake我还没找到能简单直接嵌入vcpkg的方法 QQ)
并可成功建置QML专案(完全不需要去载QtCreator那些套件),
Linux和Win都可以编译。
--------------------------
4.专案码与进度
--------------------------
档案在此
https://bitbucket.org/dzwei/vcpkg_cmake_qtqml
目前进度: Win10可以建置
Linux有空再尝试
(本身用Arch,
AUR已经够好用了XD
所以之後会找时间再试试)
--------------------------
5.建置说明
--------------------------
大部分再readme.md有说的清楚了(应该吧?!)
所以我提示几个重点:
0.确保网路稳定
1.vs2019要先安装,ATL&MFC也要装好
2.初次安装vcpkg,要以系统管理员的身分,
在win下建议使用powershell
3.记得检查:
C:\SDKs\vcpkg\installed\x64-windows\bin
C:\SDKs\vcpkg\installed\x64-windows\debug\bin
(4的,我把vcpkg安装在C:\SDKs)
是否有在,Path里面
我曾经因为这样(第二行那个没在环境变数Path里面),
de半个早上bug才发现这件事QQ
--------------------------
6.已知问题(我碰到的)
--------------------------
安装Qt5的时候,
使用vcpkg在win10下安装Qt-speech:x64_windows
会无法安装,
已通报issue给vcpkg带解答,
目前这样是不影响本例题。
--------------------------
写在最後(工商时间)
--------------------------
最近发现,如果习惯C++的人
可能会喜欢Rust而不是Go
原因就给大家去喂狗吧XD
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.194.16.146 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1578159273.A.A24.html
※ 编辑: dzwei (123.194.16.146 台湾), 01/05/2020 01:53:20
※ 编辑: dzwei (42.76.131.148 台湾), 01/05/2020 02:06:56
1F:推 plsmaop: go 有 GC 啊,rust 没有啊 01/05 13:22
阿对 我忘了补上去XD
Rust内建的cargo我觉得不差压
※ 编辑: dzwei (123.194.16.146 台湾), 01/05/2020 13:48:44
2F:推 vm0: 还有conan,最近gitlab也有采用 01/05 14:11
谢谢大大提供一个不错的选择
※ 编辑: dzwei (123.194.16.146 台湾), 01/05/2020 14:25:48