0.环境准备,我使用的VS版本是17.9.4,SDK版本是10.0.22621.0,最好不要用太老的版本

1.去下载Python,git,cmake这三个工具,然后在D盘根目录新建TBuild文件夹,里面再建Libraries和ThirdParty这两个文件夹

下载地址:

Python3.10:https://www.python.org/downloads/

Git:https://git-scm.com/download/win

cmake2.21及以后版本:https://cmake.org/download/

2.把这三个工具放进ThirdParty这个文件夹内

3.去区域设置里勾上UTF-8编码,搜索框里输区域就能找到

4.在cmd中进入TBuild文件夹下,使用git获取telegram,命令如下:

git clone --recursive https://github.com/telegramdesktop/tdesktop.git
下载好后会自动新建一个tdesktop的文件夹
网络不好的话可以设置代理:
cmd代理:set http_proxy=http://127.0.0.1:1234; set https_proxy=http://127.0.0.1:1234; 端口号根据实际填写
git代理:git config --global http.proxy localhost:1234; git config --global https.proxy localhost:1234
也可以去git地址下载源码

5.打开vs的X86编辑器,我编译的是32位的telegram,如果编译64位可能有些步骤会有区别

6.进入图中的文件夹,运行win.bat命令,然后就会自动下载所需的工具和第三方库,一共有28个

7.过程中可能会遇到下载失败的情况,这个时候会出现r重构,a全部重构,s跳过,p打印,q退出这几种选项,如果对自己编译能力不是特别有信心,那就不要自己去编译,选择重构。因为有些组件前后存在联系,所以最好按顺序编译。

成功了的话就会显示SKIPPING,程序会自动跳过,需要手动输命令一般都是编译失败了,不过自己手动编译了的话也需要输命令跳过

8.全部编译成功就是下图这个样子

9.然后进入图中的文件夹进行构建,输入以下命令,命令中的api_id和api_hash是官方提供的示例,自己有的话可以替换成自己的

configure.bat -D TDESKTOP_API_ID=17349 -D TDESKTOP_API_HASH=344583e45741c457fe1862106095a5eb

10.构建成功的话会在out文件夹里出现sln文件,点击就能进入vs22里开始编译了

10.编译成功的样子

11.可能会遇到C1128这个错误,在报错的项目内的图中位置加上 /bigobj就可以了

如果还遇到了其他问题,欢迎在评论区讨论

参考文章:tdesktop/docs/building-win.md at dev · telegramdesktop/tdesktop · GitHub

24年3月使用VS22编译Telegram Desktop的更多相关文章

  1. 源码编译Redis Desktop Manager ---(转载)

    精美文章转载: 版权声明:本文作者为「Kany.Wang」,本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议.转载请注明出处!原文链接:https://kany.me/20 ...

  2. 源码编译Redis Desktop Manager | 懒人屋

    原文:源码编译Redis Desktop Manager | 懒人屋 源码编译Redis Desktop Manager  2.3k  字    10  分钟    2019-10-10 文章背景 本 ...

  3. 10.24的注意事项——解决linux_jni编译错误的问题

    公司以opus开源库.因此,我们遇到了一些问题. 我将新下载的opus1.1替换掉老版本号之后,单独编译opus没问题.但是编译相关的文件就会报错. 错误信息例如以下: g++ -Wall -fPIC ...

  4. premake 在64位Ubuntu系统下编译32位GCC程序

    首先,要安装GCC 4.8, 参考前文:Ubuntu 12.04 & 13.04 安装 GCC4.8.1 其中,重点是安装multilib apt-get install gcc-4.8-mu ...

  5. hadoop2.2.0 centos 编译安装详解

    http://blog.csdn.net/w13770269691/article/details/16883663 废话不讲,直切正题. 搭建环境:Centos x 6.4 64bit 1.安装JD ...

  6. QT编译./configure参数的详细解释

    可以随便的转载,只要按照规矩走带上咱论坛的链接就好. ======================================全文是按照./configure -help来翻译的========= ...

  7. CentOS自行编译升级Git

    上一篇升级Git的方式是通过更改yum的源,然后通过yum来安装,那么对于喜欢折腾的人来说,怎么通过Git的源代码自行安装呢? 我安装的是CentOS-7-x86_64-1908,自带的git是1.8 ...

  8. Android源码分析(四)-----Android源码编译及刷机步骤

    一 : 获取源码: 每个公司服务器地址不同,以如下源码地址为例: http://10.1.14.6/android/Qualcomm/msm89xx/branches/msm89xx svn环境执行: ...

  9. 使用uncompyle2直接反编译python字节码文件pyo/pyc

    update:在Mac OS X版的September 10, 2014版(5.0.9-1)中发现安装目录中的src.zip已更换位置至WingIDE.app/Contents/Resources/b ...

  10. Chromium Embedded Framework 中文文档(简介)

    转自:http://www.cnblogs.com/think/archive/2011/10/06/CEF-Introduce.html 简介 Chromium Embedded Framework ...

随机推荐

  1. linux中cron表达式指南

    Cron是什么? 简单来讲,cron是基于Unix的系统上的一个实用程序.它使用户能够安排任务在指定的[日期/时间]定期运行.它自然是一个伟大的工具,可以自动运行大量流程,否则需要人工干预. Cron ...

  2. Java集合框架学习(四) LinkedHashSet详解

    LinkedHashSet介绍 前面我们介绍了HashSet和TreeSet. LinkedHashSet也是Set接口的一个实现类,同时还继承了HashSet public class Linked ...

  3. html中iframe调用兄弟iframe中的js方法

    问题说明 最近工作中碰到一个页面有一个主iframe A,用于操作主要业务元素.其中有一个弹出框里面也嵌入了一个iframe B, 此时,我需要在B中调用A中JS的指定方法.下面咱们来通过例子还原一下 ...

  4. AIGC程序员效能提升之道

    得益于IT产业近几年的繁荣,老杨所在公司的业务也出奇的兴隆,每天干不完的工作背后,也意味着健康的消耗和体重的不断增加. 曾记否,刚毕业的老杨体重刚刚堪堪破百,同事们经常调侃他说是一阵风就能吹走,经过了 ...

  5. 网站(>???<)

    http://cpeditor.org/ https://csacademy.com/app/graph_editor/ https://www.cnblogs.com/zhangyi1357/p/1 ...

  6. SIP协议解析

    起始行(start-line) INVITE sip:34020000001320000001@202.102.11.27:35611 SIP/2.0 请求消息的起始行包括三个参数,格式:Reques ...

  7. win32-Transparent的使用

    这个api的功能主要是实现"透明" 原理: Transparent将hdc中bmp的特定颜色"透明化" #include <Windows.h> # ...

  8. auth模块的一些方法

    auth模块 auth模块是cookie和session的升级版,auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象,而 ...

  9. webpack图片压缩

    减少代码体积 | 尚硅谷 Web 前端之 Webpack5 教程 (yk2012.github.io) npm install image-mininizer webpack plugin image ...

  10. 测绘线性代数(四):数学期望、协方差、PCA

    数学期望 E(X) = ∑pixi,X为所有xi的集合,pi为xi对应的概率. 通常来说,xi都是离散的,除非像高斯分布,假设xi不是离散的,才用上式. 当xi是离散的,那么: E(X) = 1 / ...