TCL - 库编译过程和官方手册

news2024/11/16 10:16:14

文章目录

    • TCL - 库编译过程和官方手册
    • 概述
    • 笔记
    • 编译步骤
    • TCL官方手册
    • END

TCL - 库编译过程和官方手册

概述

想看看sqlite3的官方demo工程, 没看到. 想编译一下sqlite3源码, 看看编译后有没有example 工程.
看了sqlite3的官方说明, 他们工程使用tcl来编译的.
一听tcl, 咋这么耳熟呢? 去看了一下笔记, 原来cadence中也是可以用TCL命令的.
搜索了一下*.tcl, 在本机上好多软件都用这个.
将TCL库编译通过, 大致看了一下TCL官方教程.

笔记

sqlite3的下载点
https://www.sqlite.org/download.html
当前sqlite3版本为3.44.2
在这里插入图片描述
sqlite3的源码镜像 https://github.com/sqlite/sqlite.git
在这里插入图片描述
readme.md中有编译TCL库的说明
在这里插入图片描述
在这里插入图片描述

编译步骤

Install Microsoft Visual Studio. The free "community edition" 
will work fine.  Do a standard install for C++ development.
SQLite only needs the
"cl" compiler and the "nmake" build tool.

我本地有VS2019和VS2022的企业版, 不需要装VS.
我就用VS2019来弄一下.

Under the "Start" menu, find "All Apps" then go to "Visual Studio 20XX"
and find "x64 Native Tools Command Prompt for VS 20XX".  Pin that
application to your task bar, as you will use it a lot.  Bring up
an instance of this command prompt and do all of the subsequent steps
in that "x64 Native Tools" command prompt.  (Or use "x86" if you want
a 32-bit build.)  The subsequent steps will not work in a vanilla
DOS prompt.  Nor will they work in PowerShell.

打开VS2019本地工具命令行.
在这里插入图片描述
编译一个X64版本的TCL库出来.
在这里插入图片描述
TCL下载url : https://www.tcl.tk/software/tcltk/download.html
将新版的源码包下载到本地
在这里插入图片描述
在这里插入图片描述
将源码包拷贝到D盘
在这里插入图片描述
d:\tcl8.6.13 是编译前的TCL库源码包, Tcl是编译后安装好的发布目录.
编译时, 360有警告, 说木马啥的, 将d:\tcl8.6.13加入白名单再编译.
在vs2019本地工具命令行中编译

cd /d d:\tcl8.6.13
cd win

# 编译T
nmake /f makefile.vc release
# 等待编译完成.

# a
nmake /f makefile.vc INSTALLDIR=d:\Tcl install

在这里插入图片描述
将发布目录的库和exe都改个名字(可以改一个本地独一无二的名字), 方便使用. 防止和其他软件用的TCL库和EXE名称相同.
在这里插入图片描述
在这里插入图片描述
sqlite官方建议将自己编译出的TCL库发布目录的bin目录添加到环境变量.
因为本地有很多tcl发布目录(好多软件都带这个TCL发布包…)
在这里插入图片描述
我还是用bat启动, 然后加个临时环境变量好点.
写了一个脚本,来运行tcl命令. 使用的TCL库指定为自己编译的那个.

@echo off
rem https://www.tcl.tk/man/tcl8.5/tutorial/Tcl0.html 这是TCL官方教程
cls

rem the .cmd must save as ansi, 否则乱码
rem 指定代码页为GB2312
chcp 936

rem 进入当前目录
cd /d %~dp0

rem %~dp0 是当前目录的路径, 已经带\了
rem echo %~dp0TCL\bin
rem 将当前目录加入临时的环境变量
set path=%~dp0\TCL\bin;%path%

rem 将tcl拖拽到.cmd上面就行, 就可以运行. 不用在命令行窗口运行
tclsh86.exe %1
pause


在这里插入图片描述
我直接将TCL发布目录拷贝到bat脚本文件的当前目录, 就使用自己的TCL目录.
如果想做TCL实验, 直接将.tcl拖动到.cmd上面, 就可以运行了.
在这里插入图片描述
在这里插入图片描述

TCL官方手册

https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
忘了怎么找个这个官方教程url了.
反正去看 https://www.tcl.tk/man/
能看到每个版本的帮助
在这里插入图片描述
其他版本的都是帮助文件, 这个TCL8.5是个网页版教程, 讲的很详细.
如果只是出于维护(学习)已有TCL程序的目的, 需要啥, 就去找啥就行.
一共有49个特性.
在这里插入图片描述
在这里插入图片描述
TCL官方教程中说, 大概几个小时就能用TCL来干活.
应该没那么简单, 熟悉还有个过程呢.
大致翻了一下. 知道有啥特性了. 官方给出的demo大部分(和linux无关的部分)都可以运行.
要想看完, 就能马上自己写TCL程序, 那有点扯.
不过大致翻一下, 做TCL程序的维护是没问题的.

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1284656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Docker构建Python开发环境

1. Dockerfile dockerfile所在目录结构 FROM python:3.8 WORKDIR /leo RUN apt-get install -y wget RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai >/etc/timezone # ssh免密登录 COPY id_rsa.pub /leo RUN mkdir ~/.s…

戴森发布全新Airstrait吹风直发器,美发科技品类再添力作

——利用气流,吹干的同时拉直头发,无需热夹板,头发无热损伤 (2023年11月30日,上海)戴森今日重磅发布全新美发造型产品——戴森Airstrait™吹风直发器,作为戴森美发科技品类的又一创新力作&…

Redis Hash数据类型

Redis Hash数据类型 几乎所有的主流编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射。在 Redis 中,哈希类型是指值本身又是一个键值对结构,形如key “key”,value {ffield1, value1 }, … {fieldN…

算法通关村第十六关-黄金挑战滑动窗口与堆的结合

大家好我是苏麟 , 今天带来一道小题 . 滑动窗口最大值 描述 : 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 题目 : …

探索图像生成中的生成对抗网络 (GAN) 世界

一、介绍 生成对抗网络(GAN)的出现标志着人工智能领域的一个重要里程碑,特别是在图像生成领域。GAN 由 Ian Goodfellow 和他的同事于 2014 年提出,代表了机器学习中的一种新颖方法,展示了生成高度逼真和多样化图像的能…

ping会出现的两种问题-----time out 和 unreachable

ping命令常见的返回信息有两种: Request timed out和Destination host unreachable 两者的区别是: Request timed out是ping包没有返回的路由,导致超时 Destination host unreachable是ping包没有去到目的地的路由 来看一个例子: 各部件配置如下&…

电子学会C/C++编程等级考试2022年09月(四级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:最长上升子序列 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … &l…

React全站框架Next.js使用入门

Next.js是一个基于React的服务器端渲染框架&#xff0c;它可以帮助我们快速构建React应用程序&#xff0c;并具有以下优势&#xff1a; 1. 支持服务器端渲染&#xff0c;提高页面渲染速度和SEO&#xff1b; 2. 自带webpack开发环境&#xff0c;实现即插即用的特性&#xff1b;…

新华三数字大赛复赛知识点 网络访问控制

EAD解决方案、portal认证、以太网访问控制列表 EAD&#xff1a; 网络安全从本质上讲是管理问题&#xff0c;&#xff08;End user Admission Domination&#xff09;解决方案从控制用户终端安全接入网络的角度入手&#xff0c;整合网络接入控制与终端安全产品&#xff0c;通过…

nginx对多个服务器的高可用,容易出现鉴权失败

高可用简单测试正常&#xff0c;但是出现高概率401鉴权错误 抓包发现&#xff0c;确实是401 &#xff0c; 而鉴权是两次交互&#xff1a; 抓包发现鉴权到不同服务器上了&#xff0c;导致鉴权没有完成。 此时就需要我们的ip_hash,把同一IP地址的请求,都分配给同一台后端服务器&…

【mysql】基于binlog数据恢复指令和坑

文章目录 1.binlog相关配置是否开启binlogbinlog日志格式 2.导出binlog日志mysqlbinlog指令updateinsertdeletebinlog中的事件 3.数据恢复4.特别注意的坑为什么bash脚本执行mysqlbinlog&#xff0c;无法找到指令为什么执行mysqlbinlog&#xff0c;无法数据恢复 1.binlog相关配置…

互联网Java工程师面试题·Spring Boot篇·第一弹

目录 1、什么是 Spring Boot&#xff1f; 2、Spring Boot 有哪些优点&#xff1f; 3、什么是 JavaConfig&#xff1f; 4、如何重新加载 Spring Boot 上的更改&#xff0c;而无需重新启动服务器&#xff1f; 5、Spring Boot 中的监视器是什么&#xff1f; 6、如何在 Sprin…

stm32一种步进电机查表法驱动

文章目录 一、定时器基础频率二、驱动原理三、关键代码 对于stm32芯片来说&#xff0c;步进电机的驱动由于要在中断中不断计算下一次脉冲的时间而极其消耗算力&#xff0c;使用计算的方法对于芯片的算法消耗更高&#xff0c;特别是在f1这种算力比较低的芯片上&#xff0c;这时候…

【数电笔记】25-mos管的开关特性

目录 说明&#xff1a; mos管的符号 1. N沟道增强型 2. P沟道增强型 3. N沟道耗尽型 4. P沟道耗尽型 mos管的静态开关特性 1. N沟道增强型MOS管 2. P沟道增强型MOS管 说明&#xff1a; 笔记配套视频来源&#xff1a;B站&#xff1b;本系列笔记并未记录所有章节&#…

(C语言)判定一个字符串是否是另一个字符串的子串,若是则返回子串在主串中的位置。

要求&#xff1a; &#xff08;1&#xff09;在主函数中输入两个字符串&#xff0c;调用子函数cmpsubstr()判断&#xff0c;并在主函数输出结果。 &#xff08;2&#xff09;子函数的返回值为-1表示未找到&#xff0c;否则返回子串的位置&#xff08;起始下标&#xff09;。 …

883重要知识点

&#xff08;1&#xff09;程序结构分三种&#xff1a;顺序结构&#xff0c;选择结构&#xff0c;循环结构。 &#xff08;2&#xff09;该程序都要从main&#xff08;&#xff09;开始&#xff0c;然后从最上面往下。 &#xff08;3&#xff09;计算机的数据在电脑中保存以二…

微信小程序uni.chooseImage()无效解决方案

Bug场景&#xff1a; 微信小程序在上传图片时可以通过 uni.chooseImage()方案进行上传&#xff0c;这里不再赘述具体参数。一直项目都可以正常使用&#xff0c;突然有一天发现无法使用该方法&#xff0c;于是查了一下&#xff0c;发现是用户隐私协议问题。故记录一下解决方案。…

11、pytest断言预期异常

官方用例 # content of test_exception_zero.py import pytestdef test_zero_division():with pytest.raises(ZeroDivisionError):1/0# content of test_exception_runtimeerror.py import pytestdef test_recursion_depth():with pytest.raises(RuntimeError) as excinfo:def…

STM32上模拟CH340芯片的功能 (一)

#虚拟串口模拟CH340# 后续代码更新放gitee 上 一、思路 1. 确定通信接口&#xff1a;CH340是一款USB转串口芯片&#xff0c;因此您需要选择STM32上的某个USB接口来实现USB通信。通常情况下&#xff0c;STM32系列芯片都有内置的USB接口&#xff0c;您可以根据您的具体型号选择…

Excel 实现在某一列中循环合并多行单元格

在 Excel 中&#xff0c;使用 VBA&#xff08;Visual Basic for Applications&#xff09;宏可以轻松实现多行合并单元格的操作。下面是一个简单的 VBA 代码实现循环合并3行单元格的示例&#xff1a; 1. 打开 Excel 在你的 Excel 文件中&#xff0c;按下 Alt F11 打开 VBA 编…