mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-24 22:22:08 +03:00
Improved instructions on how to build SQLite on Windows 11 and similar.
FossilOrigin-Name: 0f6b2b33736ee07f17f3a4e5f077bb4d0e2481c8f81251b8ce6b78510f372237
This commit is contained in:
43
README.md
43
README.md
@ -104,9 +104,9 @@ For example:
|
|||||||
mkdir bld ;# Build will occur in a sibling directory
|
mkdir bld ;# Build will occur in a sibling directory
|
||||||
cd bld ;# Change to the build directory
|
cd bld ;# Change to the build directory
|
||||||
../sqlite/configure ;# Run the configure script
|
../sqlite/configure ;# Run the configure script
|
||||||
make ;# Run the makefile.
|
make ;# Builds the "sqlite3" command-line tool
|
||||||
make sqlite3.c ;# Build the "amalgamation" source file
|
make sqlite3.c ;# Build the "amalgamation" source file
|
||||||
make test ;# Run some tests (requires Tcl)
|
make devtest ;# Run some tests (requires Tcl)
|
||||||
|
|
||||||
See the makefile for additional targets.
|
See the makefile for additional targets.
|
||||||
|
|
||||||
@ -119,29 +119,30 @@ show what changes are needed.
|
|||||||
## Using MSVC for Windows systems
|
## Using MSVC for Windows systems
|
||||||
|
|
||||||
On Windows, all applicable build products can be compiled with MSVC.
|
On Windows, all applicable build products can be compiled with MSVC.
|
||||||
First open the command prompt window associated with the desired compiler
|
You will also need a working installation of TCL.
|
||||||
version (e.g. "Developer Command Prompt for VS2013"). Next, use NMAKE
|
See the [compile-for-windows.md](doc/compile-for-windows.md) document for
|
||||||
with the provided "Makefile.msc" to build one of the supported targets.
|
additional information about how to install MSVC and TCL and configure your
|
||||||
|
build environment.
|
||||||
|
|
||||||
For example, from the parent directory of the source subtree named "sqlite":
|
If you want to run tests, you need to let SQLite know the location of your
|
||||||
|
TCL library, using a command like this:
|
||||||
|
|
||||||
mkdir bld
|
set TCLDIR=c:\Tcl
|
||||||
cd bld
|
|
||||||
nmake /f ..\sqlite\Makefile.msc TOP=..\sqlite
|
|
||||||
nmake /f ..\sqlite\Makefile.msc sqlite3.c TOP=..\sqlite
|
|
||||||
nmake /f ..\sqlite\Makefile.msc sqlite3.dll TOP=..\sqlite
|
|
||||||
nmake /f ..\sqlite\Makefile.msc sqlite3.exe TOP=..\sqlite
|
|
||||||
nmake /f ..\sqlite\Makefile.msc test TOP=..\sqlite
|
|
||||||
|
|
||||||
There are several build options that can be set via the NMAKE command
|
SQLite uses "tclsh.exe" as part of the build process, and so that utility
|
||||||
line. For example, to build for WinRT, simply add "FOR_WINRT=1" argument
|
program will need to be somewhere on your %PATH%. The finished SQLite library
|
||||||
to the "sqlite3.dll" command line above. When debugging into the SQLite
|
does not contain any TCL code, but it does use TCL to help with the build process
|
||||||
code, adding the "DEBUG=1" argument to one of the above command lines is
|
and to run tests.
|
||||||
recommended.
|
|
||||||
|
|
||||||
SQLite does not require [Tcl](http://www.tcl.tk/) to run, but a Tcl installation
|
Build using Makefile.msc. Example:
|
||||||
is required by the makefiles (including those for MSVC). SQLite contains
|
|
||||||
a lot of generated code and Tcl is used to do much of that code generation.
|
nmake /f Makefile.msc
|
||||||
|
nmake /f Makefile.msc sqlite3.c
|
||||||
|
nmake /f Makefile.msc devtest
|
||||||
|
nmake /f Makefile.msc releasetest
|
||||||
|
|
||||||
|
There are many other makefile targets. See comments in Makefile.msc for
|
||||||
|
details.
|
||||||
|
|
||||||
## Source Code Tour
|
## Source Code Tour
|
||||||
|
|
||||||
|
59
doc/compile-for-windows.md
Normal file
59
doc/compile-for-windows.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Notes On Compiling SQLite On Windows 11
|
||||||
|
|
||||||
|
Here are step-by-step instructions on how to build SQLite from
|
||||||
|
canonical source on a new Windows 11 PC, as of 2023-08-16:
|
||||||
|
|
||||||
|
1. 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.
|
||||||
|
|
||||||
|
2. 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.
|
||||||
|
|
||||||
|
3. Install TCL development libraries. This note assumes that you wil
|
||||||
|
install the TCL development libraries in the "`c:\Tcl`" directory.
|
||||||
|
Make adjustments
|
||||||
|
if you want TCL installed somewhere else. SQLite needs both the
|
||||||
|
"tclsh.exe" command-line tool as part of the build process, and
|
||||||
|
the "tcl86.lib" library in order to run tests. You will need
|
||||||
|
TCL version 8.6 or later.
|
||||||
|
<ol type="a">
|
||||||
|
<li>Get the TCL source archive, perhaps from
|
||||||
|
<https://www.tcl.tk/software/tcltk/download.html>.
|
||||||
|
<li>Untar or unzip the source archive. CD into the "win/" subfolder
|
||||||
|
of the source tree.
|
||||||
|
<li>Run: `nmake /f makefile.vc release`
|
||||||
|
<li>Run: `nmake /f makefile.vc INSTALLDIR=c:\Tcl install`
|
||||||
|
<li>CD to c:\\Tcl\\lib. In that subfolder make a copy of the
|
||||||
|
"`tcl86t.lib`" file to the alternative name "`tcl86.lib`"
|
||||||
|
(omitting the second 't'). Leave the copy in the same directory
|
||||||
|
as the original.
|
||||||
|
<li>CD to c:\\Tcl\\bin. Make a copy of the "`tclsh86t.exe`"
|
||||||
|
file, renaming it to "`tclsh.exe`". Put the copy somewhere
|
||||||
|
on your %PATH% so that the SQLite makefile will be able to
|
||||||
|
run "tclsh" commands.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
4. Download the SQLite source tree and unpack it. CD into the
|
||||||
|
toplevel directory of the source tree.
|
||||||
|
|
||||||
|
5. Set the TCLDIR environment variable to point to your TCL installation.
|
||||||
|
Like this:
|
||||||
|
<ul>
|
||||||
|
<li> `set TCLDIR=c:\Tcl`
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
6. Run the "`Makefile.msc`" makefile with an appropriate target.
|
||||||
|
Examples:
|
||||||
|
<ul>
|
||||||
|
<li> `nmake /f makefile.msc`
|
||||||
|
<li> `nmake /f makefile.msc sqlite3.c`
|
||||||
|
<li> `nmake /f makefile.msc devtest`
|
||||||
|
<li> `nmake /f makefile.msc releasetest`
|
||||||
|
</ul>
|
13
manifest
13
manifest
@ -1,12 +1,12 @@
|
|||||||
C Make\ssqlite3_stmt_explain()\saccessible\sto\sloadable\sextensions.
|
C Improved\sinstructions\son\show\sto\sbuild\sSQLite\son\sWindows\s11\sand\ssimilar.
|
||||||
D 2023-08-16T15:27:49.292
|
D 2023-08-16T17:12:26.504
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
F Makefile.in 6f391d54fa01f8a49b024fef5cce1ab8234c281164641cf9a52694b432bdec1b
|
F Makefile.in 6f391d54fa01f8a49b024fef5cce1ab8234c281164641cf9a52694b432bdec1b
|
||||||
F Makefile.linux-gcc f3842a0b1efbfbb74ac0ef60e56b301836d05b4d867d014f714fa750048f1ab6
|
F Makefile.linux-gcc f3842a0b1efbfbb74ac0ef60e56b301836d05b4d867d014f714fa750048f1ab6
|
||||||
F Makefile.msc e0e2630b327b31232f4f1c748cae8af358f897e88cae7479218369d1d510f94d
|
F Makefile.msc e0e2630b327b31232f4f1c748cae8af358f897e88cae7479218369d1d510f94d
|
||||||
F README.md c1c4218efcc4071a6e26db2b517fdbc1035696a29b370edd655faddbef02b224
|
F README.md 093d7054271141a0a8518558e3d49087cb71f84d33b50ee10053946ed85dcac8
|
||||||
F VERSION c6366dc72582d3144ce87b013cc35fe48d62f6d07d5be0c9716ea33c862144aa
|
F VERSION c6366dc72582d3144ce87b013cc35fe48d62f6d07d5be0c9716ea33c862144aa
|
||||||
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
|
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
|
||||||
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
|
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
|
||||||
@ -37,6 +37,7 @@ F configure 9dc3300339f4d6b3c3b108de60cc6ae6b3c547e25c7e6df280b4775db4de3a1b x
|
|||||||
F configure.ac 4654d32ac0a0d0b48f1e1e79bdc3d777b723cf2f63c33eb1d7c4ed8b435938e8
|
F configure.ac 4654d32ac0a0d0b48f1e1e79bdc3d777b723cf2f63c33eb1d7c4ed8b435938e8
|
||||||
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
|
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
|
||||||
F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
|
F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
|
||||||
|
F doc/compile-for-windows.md a978d0939c4df3bc2903be88918bdb157d6acbd8ddd5e1b6e57fbadd250f92b3
|
||||||
F doc/json-enhancements.md e356fc834781f1f1aa22ee300027a270b2c960122468499bf347bb123ce1ea4f
|
F doc/json-enhancements.md e356fc834781f1f1aa22ee300027a270b2c960122468499bf347bb123ce1ea4f
|
||||||
F doc/lemon.html d2862dbef72496e87f7996f37e814b146848190a742c12161d13fd15346051b0
|
F doc/lemon.html d2862dbef72496e87f7996f37e814b146848190a742c12161d13fd15346051b0
|
||||||
F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
|
F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
|
||||||
@ -2091,8 +2092,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 775a36ee093df4b5f7529a43eeaee9d5a9a943ad5ed8ae03bc74e459e87ba438
|
P a237a31ff4a7cd3dc744af1e1ebb9466e42eebafa31c1b5c0027cbaee9babc9b
|
||||||
R 42ceb918e8eb774c2019ae2eb0fd4576
|
R e19435c7f021382e55e405e67b892334
|
||||||
U drh
|
U drh
|
||||||
Z bc0426191acbad1bab7ee4cb90f3a1c9
|
Z 76dc25a75d894710960a3989dfe3a1ae
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
a237a31ff4a7cd3dc744af1e1ebb9466e42eebafa31c1b5c0027cbaee9babc9b
|
0f6b2b33736ee07f17f3a4e5f077bb4d0e2481c8f81251b8ce6b78510f372237
|
Reference in New Issue
Block a user