Building on Windows 10

I’me trying to upgrade to the latest release of sqlcipher and having trouble generating the files with MSVC - these issues are new to the latest release on github. 4.1.0

Bellow is the output … any ideas please?

C:\GitHub\sqlcipher\bld>nmake /f …\Makefile.msc TOP=…

Microsoft ® Program Maintenance Utility Version 14.16.27027.1
Copyright © Microsoft Corporation. All rights reserved.

    copy /Y tsrc\sqlite3ext.h sqlite3ext.h
    1 file(s) copied.
    tclsh ..\tool\mksqlite3c.tcl
    copy ..\ext\session\sqlite3session.h .
    1 file(s) copied.
    cl -nologo -W4 -DINCLUDE_MSVC_H=1   -DSQLITE_OS_WIN=1 -I. -I.. -I..\src -fp:precise -MT -DNDEBUG -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -DSQLITE_THREADSAFE=1 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -DSQLITE_TEMP_STORE=1  -DSQLITE_MAX_TRIGGER_DEPTH=100  -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_GEOPOLY=1 -DSQLITE_ENABLE_JSON1=1 -DSQLITE_ENABLE_STMTVTAB=1 -DSQLITE_ENABLE_DBPAGE_VTAB=1 -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_INTROSPECTION_PRAGMAS=1 -DSQLITE_ENABLE_DESERIALIZE=1 -DSQLITE_ENABLE_COLUMN_METADATA=1   -O2 -Zi -Fosqlite3.lo  -c sqlite3.c

sqlite3.c
sqlite3.c(30770): error C2061: syntax error: identifier ‘CRITICAL_SECTION’
sqlite3.c(30777): error C2059: syntax error: ‘}’
sqlite3.c(30832): error C2079: ‘winMutex_staticMutexes’ uses undefined struct ‘sqlite3_mutex’
sqlite3.c(30845): error C2078: too many initializers
sqlite3.c(30832): error C2078: too many initializers
sqlite3.c(30854): error C2143: syntax error: missing ‘{’ before ‘volatile’
sqlite3.c(30854): warning C4431: missing type specifier - int assumed. Note: C no longer supports default-int
sqlite3.c(30857): error C2146: syntax error: missing ‘)’ before identifier ‘milliseconds’
sqlite3.c(30857): error C2061: syntax error: identifier ‘milliseconds’
sqlite3.c(30857): error C2059: syntax error: ‘;’
sqlite3.c(30857): error C2059: syntax error: ‘)’
sqlite3.c(30861): warning C4013: ‘InterlockedCompareExchange’ undefined; assuming extern returning int
sqlite3.c(30863): error C2109: subscript requires array or pointer type
sqlite3.c(30867): warning C4013: ‘InitializeCriticalSection’ undefined; assuming extern returning int
sqlite3.c(30867): error C2109: subscript requires array or pointer type
sqlite3.c(30875): warning C4013: ‘sqlite3_win32_sleep’ undefined; assuming extern returning int
sqlite3.c(30887): error C2109: subscript requires array or pointer type
sqlite3.c(30888): warning C4013: ‘DeleteCriticalSection’ undefined; assuming extern returning int
sqlite3.c(30888): error C2109: subscript requires array or pointer type
sqlite3.c(30950): error C2027: use of undefined type ‘sqlite3_mutex’
sqlite3.c(30769): note: see declaration of ‘sqlite3_mutex’
sqlite3.c(30952): error C2037: left of ‘id’ specifies undefined struct/union ‘sqlite3_mutex’
sqlite3.c(30961): error C2037: left of ‘mutex’ specifies undefined struct/union ‘sqlite3_mutex’
sqlite3.c(30973): error C2109: subscript requires array or pointer type
sqlite3.c(30995): error C2037: left of ‘id’ specifies undefined struct/union ‘sqlite3_mutex’
sqlite3.c(30996): error C2037: left of ‘mutex’ specifies undefined struct/union ‘sqlite3_mutex’
sqlite3.c(31027): warning C4013: ‘EnterCriticalSection’ undefined; assuming extern returning int
sqlite3.c(31027): error C2037: left of ‘mutex’ specifies undefined struct/union ‘sqlite3_mutex’
sqlite3.c(31102): warning C4013: ‘LeaveCriticalSection’ undefined; assuming extern returning int
sqlite3.c(31102): error C2037: left of ‘mutex’ specifies undefined struct/union ‘sqlite3_mutex’
sqlite3.c(34149): warning C4013: ‘GetCurrentThreadId’ undefined; assuming extern returning int
sqlite3.c(34156): error C2061: syntax error: identifier ‘sqlite3Win32Wait’
sqlite3.c(34156): error C2059: syntax error: ‘;’
sqlite3.c(34156): error C2146: syntax error: missing ‘)’ before identifier ‘hObject’
sqlite3.c(34156): error C2061: syntax error: identifier ‘hObject’
sqlite3.c(34156): error C2059: syntax error: ‘)’
sqlite3.c(34160): error C2065: ‘DWORD’: undeclared identifier
sqlite3.c(34160): error C2146: syntax error: missing ‘;’ before identifier ‘rc’
sqlite3.c(34160): error C2065: ‘rc’: undeclared identifier
sqlite3.c(34161): error C2065: ‘BOOL’: undeclared identifier
sqlite3.c(34161): error C2146: syntax error: missing ‘;’ before identifier ‘bRc’
sqlite3.c(34161): error C2065: ‘bRc’: undeclared identifier
sqlite3.c(34167): error C2065: ‘rc’: undeclared identifier
sqlite3.c(34167): error C2065: ‘WAIT_OBJECT_0’: undeclared identifier
sqlite3.c(34171): error C2065: ‘rc’: undeclared identifier
sqlite3.c(34171): warning C4013: ‘sqlite3Win32Wait’ undefined; assuming extern returning int
sqlite3.c(34171): error C2065: ‘HANDLE’: undeclared identifier
sqlite3.c(34171): error C2146: syntax error: missing ‘)’ before identifier ‘p’
sqlite3.c(34171): error C2059: syntax error: ‘)’
sqlite3.c(34173): error C2065: ‘bRc’: undeclared identifier
sqlite3.c(34173): warning C4013: ‘CloseHandle’ undefined; assuming extern returning int
sqlite3.c(34173): error C2065: ‘HANDLE’: undeclared identifier
sqlite3.c(34173): error C2146: syntax error: missing ‘)’ before identifier ‘p’
sqlite3.c(34173): error C2059: syntax error: ‘)’
sqlite3.c(34176): error C2065: ‘rc’: undeclared identifier
sqlite3.c(34176): error C2065: ‘WAIT_OBJECT_0’: undeclared identifier
sqlite3.c(34178): error C2065: ‘rc’: undeclared identifier
sqlite3.c(34178): error C2065: ‘WAIT_OBJECT_0’: undeclared identifier
sqlite3.c(45420): error C2061: syntax error: identifier ‘HANDLE’
sqlite3.c(45424): error C2061: syntax error: identifier ‘lastErrno’
sqlite3.c(45424): error C2059: syntax error: ‘;’
sqlite3.c(45439): error C2061: syntax error: identifier ‘hMap’
sqlite3.c(45439): error C2059: syntax error: ‘;’
sqlite3.c(45444): error C2059: syntax error: ‘}’
sqlite3.c(45454): error C2061: syntax error: identifier ‘BOOL’
sqlite3.c(45455): error C2059: syntax error: ‘}’
sqlite3.c(45638): error C2143: syntax error: missing ‘{’ before ‘volatile’
sqlite3.c(45638): warning C4431: missing type specifier - int assumed. Note: C no longer supports default-int
sqlite3.c(45665): error C2065: ‘AreFileApisANSI’: undeclared identifier
sqlite3.c(45695): error C2065: ‘CreateFileA’: undeclared identifier
sqlite3.c(45704): error C2065: ‘CreateFileW’: undeclared identifier
sqlite3.c(45715): error C2065: ‘CreateFileMappingA’: undeclared identifier
sqlite3.c(45725): error C2065: ‘CreateFileMappingW’: undeclared identifier
sqlite3.c(45734): error C2065: ‘CreateMutexW’: undeclared identifier
sqlite3.c(45743): error C2065: ‘DeleteFileA’: undeclared identifier
sqlite3.c(45751): error C2065: ‘DeleteFileW’: undeclared identifier
sqlite3.c(45776): error C2065: ‘FlushFileBuffers’: undeclared identifier
sqlite3.c(45781): error C2065: ‘FormatMessageA’: undeclared identifier
sqlite3.c(45790): error C2065: ‘FormatMessageW’: undeclared identifier
sqlite3.c(45799): error C2065: ‘FreeLibrary’: undeclared identifier
sqlite3.c(45806): error C2065: ‘GetCurrentProcessId’: undeclared identifier
sqlite3.c(45811): error C2065: ‘GetDiskFreeSpaceA’: undeclared identifier
sqlite3.c(45820): error C2065: ‘GetDiskFreeSpaceW’: undeclared identifier
sqlite3.c(45829): error C2065: ‘GetFileAttributesA’: undeclared identifier
sqlite3.c(45837): error C2065: ‘GetFileAttributesW’: undeclared identifier
sqlite3.c(45845): error C2065: ‘GetFileAttributesExW’: undeclared identifier
sqlite3.c(45854): error C2065: ‘GetFileSize’: undeclared identifier
sqlite3.c(45862): error C2065: ‘GetFullPathNameA’: undeclared identifier
sqlite3.c(45871): error C2065: ‘GetFullPathNameW’: undeclared identifier
sqlite3.c(45879): error C2065: ‘GetLastError’: undeclared identifier
sqlite3.c(45890): error C2065: ‘GetProcAddress’: undeclared identifier
sqlite3.c(45900): error C2065: ‘GetSystemInfo’: undeclared identifier
sqlite3.c(45907): error C2065: ‘GetSystemTime’: undeclared identifier
sqlite3.c(45912): error C2065: ‘GetSystemTimeAsFileTime’: undeclared identifier
sqlite3.c(45921): error C2065: ‘GetTempPathA’: undeclared identifier
sqlite3.c(45929): error C2065: ‘GetTempPathW’: undeclared identifier
sqlite3.c(45937): error C2065: ‘GetTickCount’: undeclared identifier
sqlite3.c(45945): error C2065: ‘GetVersionExA’: undeclared identifier
sqlite3.c(45955): error C2065: ‘GetVersionExW’: undeclared identifier
sqlite3.c(45963): error C2065: ‘HeapAlloc’: undeclared identifier
sqlite3.c(45969): error C2065: ‘HeapCreate’: undeclared identifier
sqlite3.c(45978): error C2065: ‘HeapDestroy’: undeclared identifier
sqlite3.c(45985): error C2065: ‘HeapFree’: undeclared identifier
sqlite3.c(45989): error C2065: ‘HeapReAlloc’: undeclared identifier
sqlite3.c(45994): error C2065: ‘HeapSize’: undeclared identifier
sqlite3.c(46000): error C2065: ‘HeapValidate’: undeclared identifier
sqlite3.c(46009): error C2065: ‘HeapCompact’: undeclared identifier
sqlite3.c(46017): error C2065: ‘LoadLibraryA’: undeclared identifier
sqlite3.c(46026): error C2065: ‘LoadLibraryW’: undeclared identifier
sqlite3.c(46034): error C2065: ‘LocalFree’: undeclared identifier
sqlite3.c(46042): error C2065: ‘LockFile’: undeclared identifier
sqlite3.c(46053): error C2065: ‘LockFileEx’: undeclared identifier
sqlite3.c(46065): error C2065: ‘MapViewOfFile’: undeclared identifier
sqlite3.c(46065): fatal error C1003: error count exceeds 100; stopping compilation
NMAKE : fatal error U1077: ‘“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\cl.EXE”’ : return code ‘0x2’
Stop.

C:\GitHub\sqlcipher\bld>

never mind, figured it out - seems I now have to specify what I want to build

the following seems to work

nmake /f …\Makefile.msc sqlite3.c TOP=… USE_CRT_DLL=1 WIN32HEAP=1