vs - vs2013中编译sqlite3.44.2

文章目录

    • vs - vs2013中编译sqlite3.44.2
    • 概述
    • 笔记
    • 工程输出归档
    • END

vs - vs2013中编译sqlite3.44.2

概述

以前在vs2019下编译了sqlite3.44.2, 好使。做了笔记(sqlite3.44.2的编译)
现在准备将手头的vs2019工程改为vs2013的,自然要将sqlite也编译为vs2013版本的。
按照原来的笔记编译,不好使。
估计是TCL不是VS2013版本的。
准备按照官方说明,用VS2013从头编译一次。
官方的编译文档为 D:\3rd_prj\sqlite\doc\compile-for-windows.md. 是按照vs2022 + win11 来描述的。
看看vs2013 + win10行不行。

笔记

git库地址 https://github.com/sqlite/sqlite.git
迁出到本地 D:\3rd_prj\sqlite,切到3.44.2
在这里插入图片描述
下载TCL
https://www.tcl.tk/software/tcltk/download.html
需要8.6版本或更高版本
在这里插入图片描述
查了一下,我上次编译用的tcl8613版本,本地就有,不重新下载了。
E:\tools\database\sqlite3.44.2\tcl8613-src.zip
代码解开到 E:\tools\database\sqlite3.44.2\tcl8613-src_vs2013

我只想编译vs2013x64版本的sqlite, tcl编译也用vs2013.
打开vs2013x64本地命令行

cd /d E:\tools\database\sqlite3.44.2\tcl8613-src_vs2013\tcl8.6.13\win
nmake /f makefile.vc release
nmake /f makefile.vc INSTALLDIR=d:\TCL_vs2013 install
将 D:\TCL_vs2013\lib\tcl86t.lib 拷贝为 D:\TCL_vs2013\lib\tcl86.lib
将 D:\TCL_vs2013\bin\tclsh86t.exe 拷贝为 D:\TCL_vs2013\bin\tclsh.exe

将 D:\TCL_vs2013\bin\ 加入PATH环境变量
在这里插入图片描述
关掉现有的VS2013x64本地命令行
开一个新的VS2013x64本地命令行

set TCLDIR=D:\TCL_vs2013
cd /d D:\3rd_prj\sqlite
nmake /f makefile.msc

shell.c中有错误,按照提示修正一下。

shell.c
shell.c : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
shell.c(612) : warning C4204: 使用了非标准扩展 : 非常量聚合初始值设定项
shell.c(709) : error C2065: “ENABLE_VIRTUAL_TERMINAL_PROCESSING”: 未声明的标识符
shell.c(732) : warning C4204: 使用了非标准扩展 : 非常量聚合初始值设定项
shell.c(26306) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
shell.c(26315) : error C2001: 常量中有换行符
shell.c(26316) : error C2143: 语法错误 : 缺少“;(在“const”的前面)
shell.c(26330) : error C2065: “zBom”: 未声明的标识符
shell.c(26330) : warning C4047: “=”:“int”与“const char *”的间接级别不同
shell.c(26397) : error C2065: “zBom”: 未声明的标识符
shell.c(26397) : warning C4047: “函数”:“const char *”与“int”的间接级别不同
shell.c(26397) : warning C4024: “oPutsUtf8”: 形参和实参 1 的类型不同
shell.c(26410) : error C2065: “zBom”: 未声明的标识符
shell.c(26410) : warning C4047: “函数”:“const char *”与“int”的间接级别不同
shell.c(26410) : warning C4024: “oPutsUtf8”: 形参和实参 1 的类型不同
sqlite3.c
正在生成代码...
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\cl.EXE"”: 返回代码“0x2 ”
Stop.

根据 https://learn.microsoft.com/zh-cn/windows/console/setconsolemode
修改makefile.msc, 添加 ENABLE_VIRTUAL_TERMINAL_PROCESSING 的定义

###############################################################################
############################## START OF OPTIONS ###############################
################################################################################ add by ls
!IFNDEF ENABLE_VIRTUAL_TERMINAL_PROCESSING
ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4
!ENDIF# The toplevel directory of the source tree.  This is the directory
# that contains this "Makefile.msc".
#
TOP = .

再次尝试nmake

nmake /f makefile.msc clean
nmake /f makefile.msc

不行,还是报错。
那直接在shell.c中改。

# if CIO_WIN_WC_XLATE
/* Define console modes for use with the Windows Console API. */
#  define SHELL_CONI_MODE \(ENABLE_ECHO_INPUT | ENABLE_INSERT_MODE | ENABLE_LINE_INPUT | 0x80 \| ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS | ENABLE_PROCESSED_INPUT)#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
#endif #  define SHELL_CONO_MODE (ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT \| ENABLE_VIRTUAL_TERMINAL_PROCESSING)
# endif

再次尝试nmake

nmake /f makefile.msc

ENABLE_VIRTUAL_TERMINAL_PROCESSING的报错没有了,继续解决其他的编译报错。

shell.c
shell.c : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
shell.c(612) : warning C4204: 使用了非标准扩展 : 非常量聚合初始值设定项
shell.c(737) : warning C4204: 使用了非标准扩展 : 非常量聚合初始值设定项
shell.c(26304) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
shell.c(26320) : error C2001: 常量中有换行符
shell.c(26321) : error C2143: 语法错误 : 缺少“;(在“const”的前面)
shell.c(26335) : error C2065: “zBom”: 未声明的标识符
shell.c(26335) : warning C4047: “=”:“int”与“const char *”的间接级别不同
shell.c(26402) : error C2065: “zBom”: 未声明的标识符
shell.c(26402) : warning C4047: “函数”:“const char *”与“int”的间接级别不同
shell.c(26402) : warning C4024: “oPutsUtf8”: 形参和实参 1 的类型不同
shell.c(26415) : error C2065: “zBom”: 未声明的标识符
shell.c(26415) : warning C4047: “函数”:“const char *”与“int”的间接级别不同
shell.c(26415) : warning C4024: “oPutsUtf8”: 形参和实参 1 的类型不同
sqlite3.c
正在生成代码...
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\cl.EXE"”: 返回代码“0x2 ”
Stop.

在这里插入图片描述
在VSCODE中可以看到26320行有乱码,删掉这个乱码字符,继续尝试编译。

nmake /f makefile.msc
.c  /link /pdb:sqlite3sh.pdb /DEBUG  /NOLOGO /MACHINE:X64   sqlite3res.lo
shell.c
shell.c : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
shell.c(612) : warning C4204: 使用了非标准扩展 : 非常量聚合初始值设定项
shell.c(737) : warning C4204: 使用了非标准扩展 : 非常量聚合初始值设定项
sqlite3.c
正在生成代码...
d:\3rd_prj\sqlite\shell.c(20382) : warning C4756: 常量算法中溢出
LINK : 没有找到 sqlite3.exe 或上一个增量链接没有生成它;正在执行完全链接

编译成功了,虽然有警告,咱也不知道咋解决,先这样。
在这里插入图片描述
已经生成了sqlite3.dll.
测试一下

nmake /f makefile.msc releasetest

在这里插入图片描述
初步看,好像编译的没问题,等待测试完成。
在这里插入图片描述
好像测试出错误来了,不过等不起,算了。
如果在程序中用到sqlite出错时,再想办法解决。

工程输出归档

在这里插入图片描述

END

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

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

相关文章

[HNCTF 2022 WEEK4]flower plus

第一种花指令 第二种花指令 根据两种花指令特征,写出去花指令脚本 saddr0x401000 eaddr0x435000 for i in range(saddr,eaddr):if get_wide_dword(i)0x01740275:print(hex(i),hex(get_wide_dword(i)))patch_byte(i-5,0x90)patch_dword(i-4,0x90909090)patch_dw…

插卡式仪器模块:数字万用表模块(插卡式)

• 6 位数字表显示 • 24 位分辨率 • 250 KSPS 采样率 • 电源和数字 I/O 均采用隔离抗噪技术 • 电压、电流、电阻、电感、电容的高精度测量 • 二极管/三极管测试 通道122输入 阻抗 电压10 MΩHigh-Z, 10 MΩ电流10 Ω50 mΩ / 2 Ω / 2 KΩ输入范围电压 5 V0–60 V电流…

【C语言】Leetcode-312 戳气球

文章目录 题目思路代码如下 题目 链接: Leetcode-312 戳气球 思路 我们观察戳气球的操作,发现这会导致两个气球从不相邻变成相邻,使得后续操作难以处理。于是我们倒过来看这些操作,将全过程看作是每次添加一个气球。 首先 我们需要创建一个…

卷积的计算过程

卷积的计算过程 flyfish 包括手动计算,可视化使用torch.nn.Conv2d实现 示例 import torch import torch.nn as nn# 定义输入图像 input_image torch.tensor([[1, 2, 3, 0, 1],[0, 1, 2, 3, 4],[2, 3, 0, 1, 2],[1, 2, 3, 4, 0],[0, 1, 2, 3, 4] ], dtypetorch.f…

springboot 3 oauth2认证this.authorizationService.save(authorization)生成token报错异常

springboot 3 oauth2认证this.authorizationService.save(authorization)生成token报错异常&#xff0c;使用springboot版本3.3.0。 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&…

2024年政治经济学与社会科学国际会议(ICPESS 2024)

2024年政治经济学与社会科学国际会议 2024 International Conference on Political Economy and Social Sciences 会议简介 2024年政治经济学与社会科学国际会议是一个致力于探讨政治经济学与社会科学交叉领域前沿问题的国际盛会。本次会议汇聚了全球顶尖的专家学者、研究人员和…

探索智慧农业系统架构的设计与应用

随着科技的不断进步和农业现代化的推进&#xff0c;智慧农业正逐渐成为农业发展的重要趋势。智慧农业系统架构的设计与应用&#xff0c;将农业生产与信息技术相结合&#xff0c;为农业生产提供了新的思路和解决方案。本文将深入探讨智慧农业系统架构的设计与应用&#xff0c;从…

用爬虫实现---模拟填志愿

先来说实现逻辑&#xff0c;首先我要获取到这个网站上所有的信息&#xff0c;那么我们就可以开始对元素进行检查 我们发现他的每一个学校信息都有一个对应的属性&#xff0c;并且是相同的&#xff0c;那么我们就可以遍历这个网页中的所有属性一样的开始爬取 在来分析&#xff0…

美团大规模KV存储挑战与架构实践--图文分析

美团大规模KV存储挑战与架构实践–图文分析 原作者&#xff1a;美团技术团队 原文链接&#xff1a;https://tech.meituan.com/2024/03/15/kv-squirrel-cellar.html 1 美团 KV 存储发展历程 第一代&#xff1a;使用Memcached 什么是一致性哈希&#xff1f; 哈希&#xff1a…

kafka如何保证消息不丢失

Kafka发送消息是异步发送的&#xff0c;所以我们不知道消息是否发送成功&#xff0c;所以会可能造成消息丢失。而且Kafka架构是由生产者-服务器端-消费者三种组成部分构成的。要保证消息不丢失&#xff0c;那么主要有三种解决方法。 生产者(producer)端处理 生产者默认发送消息…

AI炒股:用Kimi获取美股的历史成交价格并画出股价走势图

在Kimi中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个编写Python脚本的任务&#xff0c;具体步骤如下&#xff1a; 用akshare库获取谷歌(股票代码&#xff1a;105.GOOG)、亚马逊(股票代码&#xff1a;105.AMZN )、苹果(股票代码&#xff1a;105.AAP…

明天15点!如何打好重保预防针:迎战HVV经验分享

在当今数字化时代&#xff0c;网络攻击日益猖獗&#xff0c;各行各业面临的网络安全威胁不断升级。从钓鱼邮件到复杂的APT攻击&#xff0c;网络犯罪分子的手法层出不穷&#xff0c;给各行各业的信息安全带来了前所未有的挑战。 在这样的背景下&#xff0c;"HVV行动"应…

6月7号作业

1&#xff0c; 搭建一个货币的场景&#xff0c;创建一个名为 RMB 的类&#xff0c;该类具有整型私有成员变量 yuan&#xff08;元&#xff09;、jiao&#xff08;角&#xff09;和 fen&#xff08;分&#xff09;&#xff0c;并且具有以下功能&#xff1a; (1)重载算术运算符…

2024年电子工程与自动化技术国际会议(ICEEAT 2024)

2024 International Conference on Electronic Engineering and Automation Technology 【1】大会信息 会议简称&#xff1a;ICEEAT 2024 大会地点&#xff1a;中国西安 审稿通知&#xff1a;投稿后2-3日内通知 【2】会议简介 2024年电子工程与自动化技术国际会议是聚焦电子…

OrangePi AIpro小试牛刀-目标检测(YoloV5s)

非常高兴参加本次香橙派AI Pro&#xff0c;香橙派联合华为昇腾打造的一款AI推理开发板评测活动&#xff0c;以前使用树莓派Raspberry Pi4B 8G版本&#xff0c;这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…

Vue3中的常见组件通信之$attrs

Vue3中的常见组件通信之$attrs 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $re…

[Linux]内网穿透nps

文章目录 基础文件下载项目地址下载地址 客户端安装解压文件客户端启动客户端注册到linux系统服务客户端注册到windows系统服务windows bat 一键管理员注册windows bat 一键管理员取消 基础文件下载 项目地址 https://github.com/ehang-io/nps 下载地址 Releases ehang-io…

微服务第二轮

学习文档 背景 由于每个微服务都有不同的地址或端口&#xff0c;入口不同 请求不同数据时要访问不同的入口&#xff0c;需要维护多个入口地址&#xff0c;麻烦 前端无法调用nacos&#xff0c;无法实时更新服务列表 单体架构时我们只需要完成一次用户登录、身份校验&#xff…

想在VBA软件中做个登录验证会员授权,用什么云服务器好?

想在VBA中做个登录验证会员授权&#xff0c;用什么服务器好&#xff1f; 腾讯云99起&#xff0c;百度云50元起&#xff0c;不过也不知道到底是一整个虚拟机服务器&#xff0c; 装了WIN2012系统的&#xff0c;还是只是一个虚拟网站只给你一个文件夹可以上传PHP,ASP网页后台。 价…

6、组件通信详解(父子、兄弟、祖孙)

一、父传子 1、props 用法&#xff1a; &#xff08;1&#xff09;父组件用 props绑定数据&#xff0c;表示为 v-bind:props"数据" &#xff08;v-bind:简写为 : &#xff0c;props可以任意命名&#xff09; &#xff08;2&#xff09;子组件用 defineProps([props&…