Skip to content

Building ADBC and flightsql driver on Windows #2846

Open
@Kakolukia91

Description

@Kakolukia91

What would you like help with?

Hi,

I'm trying to use ADBC with a Microsoft Visual Studio C++ solution. I've tried to build ADBC to produce an import lib file (.lib extension) and dynamic dll (.dll) but haven't had any luck. I tried using cmake with clang and gcc through Mingw, but I only get '.a' files rather than '.lib' ones, and the compilation fails because of dllexport.

Is there any guidance of linking ADBC with C++ Windows DLLs? I'm specifically wanting to use the flightsql driver.

Thanks.

Activity

WillAyd

WillAyd commented on May 22, 2025

@WillAyd
Contributor

Hmm that's strange - can you share the error message the linker is providing?

lidavidm

lidavidm commented on May 22, 2025

@lidavidm
Member

You're likely running into something like #634 (comment)

I haven't managed to figure this out myself (it doesn't help that Microsoft no longer provides developer VMs)

WillAyd

WillAyd commented on May 22, 2025

@WillAyd
Contributor

I don't have a windows machine to test this out on, but maybe the Meson configuration works here? It looks like that is generating the expected extension:

if build_machine.system() == 'windows'

To try locallly you would have to run this from the c directory:

meson setup builddir -Dflightsql=enabled -Dtests=enabled
meson compile -C builddir
IIFE

IIFE commented on May 22, 2025

@IIFE

I don't have a windows machine to test this out on, but maybe the Meson configuration works here? It looks like that is generating the expected extension:

arrow-adbc/c/driver/flightsql/meson.build

Line 21 in e08f484

if build_machine.system() == 'windows'
To try locallly you would have to run this from the c directory:

meson setup builddir -Dflightsql=enabled -Dtests=enabled
meson compile -C builddir

Thanks @WillAyd . Tried that but unfortunately still no further ahead. This is the meson log generated:

Build started at 2025-05-22T17:34:42.731789
Main binary: C:\Users\****\AppData\Local\Programs\Python\Python313\python.exe
Build Options: -Dflightsql=enabled -Dtests=disabled
Python system: Windows
The Meson build system
Version: 1.8.0
Source dir: C:\dev\arrow-adbc\c
Build dir: C:\dev\arrow-adbc\c\builddir
Build type: native build
Project name: arrow-adbc
Project version: 1.7.0-SNAPSHOT
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gy[-] separate functions for linker
/GS[-] enable security checks           /GR[-] enable C++ RTTI
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/std:<c11|c17|clatest> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
    clatest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile
               (feature set subject to change) (off by default in C++20 and later)
/Za disable extensions (not recommended for C++)
/ZW enable WinRT language extensions    /Zs syntax check only
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 1048576)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/Zc:arg1[,arg2] language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
                        (on by default in C++20 or later, implied by /permissive-)
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (on by default in C++20 or later, implied by /permissive-)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to a non-const
                        lvalue reference (on by default in C++20 or later, implied by /permissive-)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator
                        (on by default in C++20 or later, implied by /permissive-)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules
                        (on by default in C++20 or later, implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions
                        (on by default in C++20 or later, implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor
                        (on by default in C++20 or later, implied by /permissive-)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (on by default in C++20 or later,
                        implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  nrvo[-]               enable optional copy and move elision (on by default in C++20 or later,
                        implied by /permissive- or /O2)
  __STDC__              define __STDC__ to 1 in C
  __cplusplus[-]        __cplusplus macro reports the supported C++ standard (off by default)
  char8_t[-]            enable C++20 native `u8` literal support as `const char8_t`
                        (on by default in C++20 or later)
  externConstexpr[-]    enable external linkage for constexpr variables in C++
                        (on by default in C++20 or later, implied by /permissive-)
  preprocessor[-]       enable standard conforming preprocessor in C/C++
                        (on by default in C11 or later)
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckc.c /Fesanitycheckc.exe /MD /nologo /showIncludes /utf-8 /link
Sanity check compile stdout:
sanitycheckc.c

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\dev\arrow-adbc\c\builddir\meson-private\sanitycheckc.exe
C compiler for the host machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C linker for the host machine: link link 14.40.33811.0
-----------
Detecting archiver via: `lib /?` -> 1100
stdout:
Microsoft (R) Library Manager Version 14.40.33811.0
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

      /DEF[:filename]
      /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINKREPRO:dir
      /LINKREPROTARGET:filename
      /LIST[:filename]
      /LTCG
      /MACHINE:{ARM|ARM64|ARM64X|EBC|X64|X86}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
                  EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
                  NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
      /VERBOSE
      /WX[:NO]
      /WX[:nnnn[,nnnn...]]
-----------
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gy[-] separate functions for linker
/GS[-] enable security checks           /GR[-] enable C++ RTTI
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/std:<c11|c17|clatest> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
    clatest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile
               (feature set subject to change) (off by default in C++20 and later)
/Za disable extensions (not recommended for C++)
/ZW enable WinRT language extensions    /Zs syntax check only
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 1048576)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/Zc:arg1[,arg2] language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
                        (on by default in C++20 or later, implied by /permissive-)
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (on by default in C++20 or later, implied by /permissive-)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to a non-const
                        lvalue reference (on by default in C++20 or later, implied by /permissive-)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator
                        (on by default in C++20 or later, implied by /permissive-)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules
                        (on by default in C++20 or later, implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions
                        (on by default in C++20 or later, implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor
                        (on by default in C++20 or later, implied by /permissive-)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (on by default in C++20 or later,
                        implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  nrvo[-]               enable optional copy and move elision (on by default in C++20 or later,
                        implied by /permissive- or /O2)
  __STDC__              define __STDC__ to 1 in C
  __cplusplus[-]        __cplusplus macro reports the supported C++ standard (off by default)
  char8_t[-]            enable C++20 native `u8` literal support as `const char8_t`
                        (on by default in C++20 or later)
  externConstexpr[-]    enable external linkage for constexpr variables in C++
                        (on by default in C++20 or later, implied by /permissive-)
  preprocessor[-]       enable standard conforming preprocessor in C/C++
                        (on by default in C11 or later)
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C++ compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckcpp.cc /Fesanitycheckcpp.exe /MD /nologo /showIncludes /utf-8 /Zc:__cplusplus /link
Sanity check compile stdout:
sanitycheckcpp.cc

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\dev\arrow-adbc\c\builddir\meson-private\sanitycheckcpp.exe
C++ compiler for the host machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C++ linker for the host machine: link link 14.40.33811.0
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gy[-] separate functions for linker
/GS[-] enable security checks           /GR[-] enable C++ RTTI
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/std:<c11|c17|clatest> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
    clatest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile
               (feature set subject to change) (off by default in C++20 and later)
/Za disable extensions (not recommended for C++)
/ZW enable WinRT language extensions    /Zs syntax check only
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 1048576)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/Zc:arg1[,arg2] language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
                        (on by default in C++20 or later, implied by /permissive-)
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (on by default in C++20 or later, implied by /permissive-)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to a non-const
                        lvalue reference (on by default in C++20 or later, implied by /permissive-)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator
                        (on by default in C++20 or later, implied by /permissive-)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules
                        (on by default in C++20 or later, implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions
                        (on by default in C++20 or later, implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor
                        (on by default in C++20 or later, implied by /permissive-)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (on by default in C++20 or later,
                        implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  nrvo[-]               enable optional copy and move elision (on by default in C++20 or later,
                        implied by /permissive- or /O2)
  __STDC__              define __STDC__ to 1 in C
  __cplusplus[-]        __cplusplus macro reports the supported C++ standard (off by default)
  char8_t[-]            enable C++20 native `u8` literal support as `const char8_t`
                        (on by default in C++20 or later)
  externConstexpr[-]    enable external linkage for constexpr variables in C++
                        (on by default in C++20 or later, implied by /permissive-)
  preprocessor[-]       enable standard conforming preprocessor in C/C++
                        (on by default in C11 or later)
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckc.c /Fesanitycheckc.exe /MD /nologo /showIncludes /utf-8 /link
Sanity check compile stdout:
sanitycheckc.c

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\dev\arrow-adbc\c\builddir\meson-private\sanitycheckc.exe
C compiler for the build machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C linker for the build machine: link link 14.40.33811.0
-----------
Detecting archiver via: `lib /?` -> 1100
stdout:
Microsoft (R) Library Manager Version 14.40.33811.0
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

      /DEF[:filename]
      /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINKREPRO:dir
      /LINKREPROTARGET:filename
      /LIST[:filename]
      /LTCG
      /MACHINE:{ARM|ARM64|ARM64X|EBC|X64|X86}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
                  EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
                  NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
      /VERBOSE
      /WX[:NO]
      /WX[:nnnn[,nnnn...]]
-----------
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gy[-] separate functions for linker
/GS[-] enable security checks           /GR[-] enable C++ RTTI
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/std:<c11|c17|clatest> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
    clatest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile
               (feature set subject to change) (off by default in C++20 and later)
/Za disable extensions (not recommended for C++)
/ZW enable WinRT language extensions    /Zs syntax check only
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 1048576)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/Zc:arg1[,arg2] language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
                        (on by default in C++20 or later, implied by /permissive-)
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (on by default in C++20 or later, implied by /permissive-)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to a non-const
                        lvalue reference (on by default in C++20 or later, implied by /permissive-)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator
                        (on by default in C++20 or later, implied by /permissive-)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules
                        (on by default in C++20 or later, implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions
                        (on by default in C++20 or later, implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor
                        (on by default in C++20 or later, implied by /permissive-)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (on by default in C++20 or later,
                        implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  nrvo[-]               enable optional copy and move elision (on by default in C++20 or later,
                        implied by /permissive- or /O2)
  __STDC__              define __STDC__ to 1 in C
  __cplusplus[-]        __cplusplus macro reports the supported C++ standard (off by default)
  char8_t[-]            enable C++20 native `u8` literal support as `const char8_t`
                        (on by default in C++20 or later)
  externConstexpr[-]    enable external linkage for constexpr variables in C++
                        (on by default in C++20 or later, implied by /permissive-)
  preprocessor[-]       enable standard conforming preprocessor in C/C++
                        (on by default in C11 or later)
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C++ compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckcpp.cc /Fesanitycheckcpp.exe /MD /nologo /showIncludes /utf-8 /Zc:__cplusplus /link
Sanity check compile stdout:
sanitycheckcpp.cc

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\dev\arrow-adbc\c\builddir\meson-private\sanitycheckcpp.exe
C++ compiler for the build machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C++ linker for the build machine: link link 14.40.33811.0
Build machine cpu family: x86
Build machine cpu: x86
Host machine cpu family: x86
Host machine cpu: x86
Target machine cpu family: x86
Target machine cpu: x86
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config: YES (C:\msys64\ucrt64\bin\pkg-config.EXE) 2.3.0
Determining dependency 'nanoarrow' with pkg-config executable 'C:\\msys64\\ucrt64\\bin\\pkg-config.EXE'
env[PKG_CONFIG_PATH]: 
env[PKG_CONFIG]: C:\msys64\ucrt64\bin\pkg-config.EXE
-----------
Called: `C:\msys64\ucrt64\bin\pkg-config.EXE --modversion nanoarrow` -> 1
stderr:
Package nanoarrow was not found in the pkg-config search path.
Perhaps you should add the directory containing `nanoarrow.pc'
to the PKG_CONFIG_PATH environment variable
Package 'nanoarrow' not found
-----------
CMake binary for host machine is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.EXE (3.28.3)
Extracting basic cmake information
CMake Toolchain: Calling CMake once to generate the compiler state
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\dev\arrow-adbc\c\builddir\meson-private\__CMake_compiler_info__ with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-G"
  - "Ninja"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/dev/arrow-adbc/c/builddir/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake"
  - "."
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\dev\arrow-adbc\c\builddir\meson-private\cmake_nanoarrow with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/dev/arrow-adbc/c/builddir/meson-private/cmake_nanoarrow/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['C:/Program Files', 'C:/Program Files (x86)', 'C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake']
  -- CMake root:             C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.28
  -- CMake architectures:    []
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share', '']
Preliminary CMake check failed. Aborting.
Run-time dependency nanoarrow found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency nanoarrow

Executing subproject nanoarrow 

Project name: nanoarrow
Project version: 0.6.0
C compiler for the host machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C linker for the host machine: link link 14.40.33811.0
C++ compiler for the host machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C++ linker for the host machine: link link 14.40.33811.0
C compiler for the build machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C linker for the build machine: link link 14.40.33811.0
C++ compiler for the build machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C++ linker for the build machine: link link 14.40.33811.0
Running compile:
Working directory:  C:\dev\arrow-adbc\c\builddir\meson-private\tmpmojb6ewv
Code:
extern int i;
int i;

-----------
Command line: `cl C:\dev\arrow-adbc\c\builddir\meson-private\tmpmojb6ewv\testfile.c /FoC:\dev\arrow-adbc\c\builddir\meson-private\tmpmojb6ewv\output.obj /nologo /showIncludes /utf-8 /c /nologo /showIncludes /utf-8 /c /Od /Oi- -Wmisleading-indentation -Wno-misleading-indentation` -> 2
stderr:
cl : Command line error D8021 : invalid numeric argument '/Wmisleading-indentation'
-----------
Compiler for C supports arguments -Wno-misleading-indentation: NO 
Running compile:
Working directory:  C:\dev\arrow-adbc\c\builddir\meson-private\tmpkwob453n
Code:
extern int i;
int i;

-----------
Command line: `cl C:\dev\arrow-adbc\c\builddir\meson-private\tmpkwob453n\testfile.cpp /FoC:\dev\arrow-adbc\c\builddir\meson-private\tmpkwob453n\output.obj /nologo /showIncludes /utf-8 /Zc:__cplusplus /c /nologo /showIncludes /utf-8 /Zc:__cplusplus /c /Od /Oi- -Wmisleading-indentation -Wno-misleading-indentation` -> 2
stderr:
cl : Command line error D8021 : invalid numeric argument '/Wmisleading-indentation'
-----------
Compiler for C++ supports arguments -Wno-misleading-indentation: NO 
Configuring nanoarrow_config.h using configuration
Build targets in project: 1
Subproject nanoarrow finished.

Dependency nanoarrow from subproject subprojects/arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd found: YES 0.6.0
Determining dependency 'fmt' with pkg-config executable 'C:\\msys64\\ucrt64\\bin\\pkg-config.EXE'
env[PKG_CONFIG_PATH]: 
env[PKG_CONFIG]: C:\msys64\ucrt64\bin\pkg-config.EXE
-----------
Called: `C:\msys64\ucrt64\bin\pkg-config.EXE --modversion fmt` -> 1
stderr:
Package fmt was not found in the pkg-config search path.
Perhaps you should add the directory containing `fmt.pc'
to the PKG_CONFIG_PATH environment variable
Package 'fmt' not found
-----------
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency fmt found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency fmt

Executing subproject fmt 

Project name: fmt
Project version: 10.2.0
C++ compiler for the host machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C++ linker for the host machine: link link 14.40.33811.0
C++ compiler for the build machine: cl (msvc 19.40.33811 "Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33811 for x86")
C++ linker for the build machine: link link 14.40.33811.0
Build targets in project: 2
Subproject fmt finished.

Dependency fmt found: YES 10.2.0 (overridden)
Program go found: YES (C:\Program Files\Go\bin\go.EXE)

driver\flightsql\meson.build:69:19: ERROR: Unknown variable "adbc_validation_dep".
IIFE

IIFE commented on May 22, 2025

@IIFE

@WillAyd @lidavidm

This preset allows the Ninja build to complete, however, it only produces a .dll but no .lib for the import lib, which means I can't link my dll/exe against the binaries. Furthermore, I needed to suppress warnings as errors, as the build flags dllexport with this error example. This probably means the symbols from the generated DLLs are not exported for windows clients?
C:/dev/arrow-adbc/c/include/arrow-adbc/adbc.h:318:1: error: 'dllimport' attribute ignored [-Werror=attributes]

        {
            "name": "debug",
            "displayName": "debug flight sql",
            "generator": "Ninja",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
                "ADBC_BUILD_TESTS": "OFF",
                "ADBC_DRIVER_FLIGHTSQL": "ON",
                "ADBC_DRIVER_MANAGER": "ON",
                "ADBC_DRIVER_POSTGRESQL": "OFF",
                "ADBC_DRIVER_SNOWFLAKE": "OFF",
                "ADBC_DRIVER_SQLITE": "OFF",
                "ADBC_USE_ASAN": "OFF",
                "ADBC_USE_UBSAN": "OFF",
                "ADBC_BUILD_STATIC": "OFF",
                "ADBC_BUILD_SHARED": "ON",
                "CMAKE_C_FLAGS": "-Wno-error=attributes",
                "CMAKE_CXX_FLAGS": "-Wno-error=attributes"
            }
        }
WillAyd

WillAyd commented on May 22, 2025

@WillAyd
Contributor

That looks like a configuration issue, but not a compile time one. I see you have this in your log:

Build Options: -Dflightsql=enabled -Dtests=disabled

Can you make sure you are setting up the project with -Dtests=enabled? It's an unrelated bug to require tests to build flightsql, but setting that option for now should help you move forward

IIFE

IIFE commented on May 22, 2025

@IIFE

That looks like a configuration issue, but not a compile time one. I see you have this in your log:

Build Options: -Dflightsql=enabled -Dtests=disabled

Can you make sure you are setting up the project with -Dtests=enabled? It's an unrelated bug to require tests to build flightsql, but setting that option for now should help you move forward

Thanks. When I try with tests enabled, this error occurs:

driver_manager\meson.build:18:9: ERROR: Dependency "dl" not found, tried builtin and system
WillAyd

WillAyd commented on May 22, 2025

@WillAyd
Contributor

Ugh...OK. Sorry that configuration is not well tested on Windows...

For one more minor tweak, you can try changing this line:

dl_dep = dependency('dl')

to:

if host_machine.system() != 'windows'
  dl_dep = dependency('dl')
else
  dl_dep = declare_dependency()
endif
IIFE

IIFE commented on May 22, 2025

@IIFE

Ugh...OK. Sorry that configuration is not well tested on Windows...

For one more minor tweak, you can try changing this line:

arrow-adbc/c/driver_manager/meson.build

Line 18 in e08f484

dl_dep = dependency('dl')
to:

if host_machine.system() != 'windows'
dl_dep = dependency('dl')
else
dl_dep = declare_dependency()
endif

That resolved the setup command, but now the compile command is failing with not much info, seems the ninja generator is suddenly stopping:

ninja: Entering directory `C:/dev/arrow-adbc/c/builddir'
[1/34] Compiling C object driver/common/adbc_driver_common.dll.p/utils.c.obj
FAILED: driver/common/adbc_driver_common.dll.p/utils.c.obj 
"cl" "-Idriver/common\adbc_driver_common.dll.p" "-Idriver/common" "-I..\driver\common" "-I..\include" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W3" "/O2" "/Gw" "-Wno-int-conversion" "-Wno-unused-parameter" "-DNANOARROW_BUILD_DLL" "/Fddriver/common\adbc_driver_common.dll.p\utils.c.pdb" /Fodriver/common/adbc_driver_common.dll.p/utils.c.obj "/c" ../driver/common/utils.c
cl : Command line error D8021 : invalid numeric argument '/Wno-int-conversion'
[2/34] Compiling C++ object validation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.obj
FAILED: validation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.obj 
"cl" "-Ivalidation\libadbc_validation_util.a.p" "-Ivalidation" "-I..\validation" "-I..\include" "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fdvalidation\libadbc_validation_util.a.p\.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.pdb" /Fovalidation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.obj "/c" ../subprojects/googletest-1.14.0/googlemock/src/gmock-all.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[3/34] Compiling C++ object driver_manager/adbc_driver_manager.dll.p/adbc_driver_manager.cc.obj
FAILED: driver_manager/adbc_driver_manager.dll.p/adbc_driver_manager.cc.obj 
"cl" "-Idriver_manager\adbc_driver_manager.dll.p" "-Idriver_manager" "-I..\driver_manager" "-I..\include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "/Fddriver_manager\adbc_driver_manager.dll.p\adbc_driver_manager.cc.pdb" /Fodriver_manager/adbc_driver_manager.dll.p/adbc_driver_manager.cc.obj "/c" ../driver_manager/adbc_driver_manager.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[4/34] Compiling C++ object driver/framework/adbc_driver_framework.dll.p/objects.cc.obj
FAILED: driver/framework/adbc_driver_framework.dll.p/objects.cc.obj 
"cl" "-Idriver/framework\adbc_driver_framework.dll.p" "-Idriver/framework" "-I..\driver\framework" "-I..\include" "-I." "-I.." "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\fmt-10.2.0\include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DFMT_SHARED" "-DNANOARROW_BUILD_DLL" "/Fddriver/framework\adbc_driver_framework.dll.p\objects.cc.pdb" /Fodriver/framework/adbc_driver_framework.dll.p/objects.cc.obj "/c" ../driver/framework/objects.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[5/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/dremio_flightsql_test.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/dremio_flightsql_test.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\dremio_flightsql_test.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/dremio_flightsql_test.cc.obj "/c" ../driver/flightsql/dremio_flightsql_test.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[6/34] Compiling C++ object driver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj
FAILED: driver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj 
"cl" "-Idriver/common\adbc-driver-common-test.exe.p" "-Idriver/common" "-I..\driver\common" "-I..\include" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/common\adbc-driver-common-test.exe.p\.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.pdb" /Fodriver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj "/c" ../subprojects/googletest-1.14.0/googletest/src/gtest-all.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[7/34] Compiling C++ object validation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj
FAILED: validation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj 
"cl" "-Ivalidation\libadbc_validation_util.a.p" "-Ivalidation" "-I..\validation" "-I..\include" "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fdvalidation\libadbc_validation_util.a.p\.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.pdb" /Fovalidation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj "/c" ../subprojects/googletest-1.14.0/googletest/src/gtest_main.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[8/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_connection.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_connection.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\.._.._validation_adbc_validation_connection.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_connection.cc.obj "/c" ../validation/adbc_validation_connection.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[9/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/sqlite_flightsql_test.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/sqlite_flightsql_test.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\sqlite_flightsql_test.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/sqlite_flightsql_test.cc.obj "/c" ../driver/flightsql/sqlite_flightsql_test.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[10/34] Compiling C++ object driver/framework/adbc_driver_framework.dll.p/utility.cc.obj
FAILED: driver/framework/adbc_driver_framework.dll.p/utility.cc.obj 
"cl" "-Idriver/framework\adbc_driver_framework.dll.p" "-Idriver/framework" "-I..\driver\framework" "-I..\include" "-I." "-I.." "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\fmt-10.2.0\include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DFMT_SHARED" "-DNANOARROW_BUILD_DLL" "/Fddriver/framework\adbc_driver_framework.dll.p\utility.cc.pdb" /Fodriver/framework/adbc_driver_framework.dll.p/utility.cc.obj "/c" ../driver/framework/utility.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[11/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj "/c" ../subprojects/googletest-1.14.0/googletest/src/gtest-all.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[12/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_statement.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_statement.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\.._.._validation_adbc_validation_statement.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_statement.cc.obj "/c" ../validation/adbc_validation_statement.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[13/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\.._.._validation_adbc_validation.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation.cc.obj "/c" ../validation/adbc_validation.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[14/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_database.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_database.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\.._.._validation_adbc_validation_database.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._validation_adbc_validation_database.cc.obj "/c" ../validation/adbc_validation_database.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[15/34] Linking target subprojects/arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd/nanoarrow.dll
[16/34] Compiling C++ object driver/common/adbc-driver-common-test.exe.p/utils_test.cc.obj
FAILED: driver/common/adbc-driver-common-test.exe.p/utils_test.cc.obj 
"cl" "-Idriver/common\adbc-driver-common-test.exe.p" "-Idriver/common" "-I..\driver\common" "-I..\include" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/common\adbc-driver-common-test.exe.p\utils_test.cc.pdb" /Fodriver/common/adbc-driver-common-test.exe.p/utils_test.cc.obj "/c" ../driver/common/utils_test.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[17/34] Compiling C++ object validation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj
FAILED: validation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj 
"cl" "-Ivalidation\libadbc_validation_util.a.p" "-Ivalidation" "-I..\validation" "-I..\include" "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fdvalidation\libadbc_validation_util.a.p\.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.pdb" /Fovalidation/libadbc_validation_util.a.p/.._subprojects_googletest-1.14.0_googletest_src_gtest-all.cc.obj "/c" ../subprojects/googletest-1.14.0/googletest/src/gtest-all.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[18/34] Compiling C++ object driver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj
FAILED: driver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj 
"cl" "-Idriver/common\adbc-driver-common-test.exe.p" "-Idriver/common" "-I..\driver\common" "-I..\include" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/common\adbc-driver-common-test.exe.p\.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.pdb" /Fodriver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj "/c" ../subprojects/googletest-1.14.0/googletest/src/gtest_main.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[19/34] Compiling C++ object validation/libadbc_validation_util.a.p/adbc_validation_util.cc.obj
FAILED: validation/libadbc_validation_util.a.p/adbc_validation_util.cc.obj 
"cl" "-Ivalidation\libadbc_validation_util.a.p" "-Ivalidation" "-I..\validation" "-I..\include" "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fdvalidation\libadbc_validation_util.a.p\adbc_validation_util.cc.pdb" /Fovalidation/libadbc_validation_util.a.p/adbc_validation_util.cc.obj "/c" ../validation/adbc_validation_util.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[20/34] Compiling C++ object driver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.obj
FAILED: driver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.obj 
"cl" "-Idriver/common\adbc-driver-common-test.exe.p" "-Idriver/common" "-I..\driver\common" "-I..\include" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/common\adbc-driver-common-test.exe.p\.._.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.pdb" /Fodriver/common/adbc-driver-common-test.exe.p/.._.._subprojects_googletest-1.14.0_googlemock_src_gmock-all.cc.obj "/c" ../subprojects/googletest-1.14.0/googlemock/src/gmock-all.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[21/34] Compiling C++ object driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj
FAILED: driver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj 
"cl" "-Idriver/flightsql\adbc-driver-flightsql-test.exe.p" "-Idriver/flightsql" "-I..\driver\flightsql" "-I..\include" "-I." "-I.." "-Idriver" "-I..\driver" "-Isubprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\arrow-nanoarrow-33d2c8b973d8f8f424e02ac92ddeaace2a92f8dd\src" "-I..\subprojects\googletest-1.14.0\googletest\include" "-Isubprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googletest" "-I..\subprojects\googletest-1.14.0\googlemock\include" "-Isubprojects\googletest-1.14.0\googlemock" "-I..\subprojects\googletest-1.14.0\googlemock" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W3" "/EHsc" "/std:c++17" "/permissive-" "/O2" "/Gw" "-Wno-unused-parameter" "-Wno-reorder" "-DNANOARROW_BUILD_DLL" "/Fddriver/flightsql\adbc-driver-flightsql-test.exe.p\.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.pdb" /Fodriver/flightsql/adbc-driver-flightsql-test.exe.p/.._.._subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.obj "/c" ../subprojects/googletest-1.14.0/googletest/src/gtest_main.cc
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-parameter'
[22/34] Linking target subprojects/fmt-10.2.0/fmt.dll
   Creating library subprojects\fmt-10.2.0\fmt.lib and object subprojects\fmt-10.2.0\fmt.exp

ninja: build stopped: subcommand failed.
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: C:\dev\ninja-win\ninja.EXE -C C:/dev/arrow-adbc/c/builddir

WillAyd

WillAyd commented on May 22, 2025

@WillAyd
Contributor

Well looks like things are borked there too...I am not an expert in Windows symbol visibility but we might need to ensure our configurations (both CMake and Meson) are handling that properly for this to work.

IIFE

IIFE commented on May 22, 2025

@IIFE

@WillAyd I've managed to get a little bit further with Visual Studio 2022 by using this preset:

      {
        "name": "debug-msvc2022",
        "displayName": "debug using msvc 2022",
        "generator": "Visual Studio 17 2022",
        "cacheVariables": {
          "CMAKE_BUILD_TYPE": "Debug",
          "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
          "ADBC_BUILD_TESTS": "ON",
          "ADBC_DRIVER_FLIGHTSQL": "OFF",
          "ADBC_DRIVER_MANAGER": "ON",
          "ADBC_DRIVER_POSTGRESQL": "OFF",
          "ADBC_DRIVER_SNOWFLAKE": "OFF",
          "ADBC_DRIVER_SQLITE": "ON",
          "ADBC_BUILD_SHARED": "ON",
          "ADBC_USE_ASAN": "OFF",
          "ADBC_USE_UBSAN": "OFF",
          "CMAKE_C_FLAGS": "/wd4267 /wd4244 /wd5262 /wd4266 /wd5026 /wd4310 /wd4456 /wd5204 /EHsc",
          "CMAKE_CXX_FLAGS": "/wd4267 /wd4244 /wd5262 /wd4266 /wd5026 /wd4310 /wd4456 /wd5204 /EHsc",
          "CMAKE_TOOLCHAIN_FILE": "C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake"
        }

I can build the sqlite driver and run its tests successfully. However, if I turn ADBC_DRIVER_FLIGHTSQL ON, I get this link error:

C:\dev\arrow-adbc\c\out\build\debug-msvc2022\LINK : fatal error LNK1104: cannot open file 'adbc_driver_flightsql_shared-NOTFOUND.obj' 

Feels like we're closer now but a bit confused with this latest error.

IIFE

IIFE commented on May 22, 2025

@IIFE

P.S: I'm mainly familiar with Windows dev using Visual Studio, so cmake is a bit foreign to me :)

lidavidm

lidavidm commented on May 22, 2025

@lidavidm
Member

What happens if you just go into go/adbc/pkg and make? That will directly invoke Go to build a DLL, and hopefully a LIB. If it doesn't generate a LIB, we may be out of luck (I believe Go has to do that)

IIFE

IIFE commented on May 23, 2025

@IIFE

I think I may have figured it out. Go doesn't generate a LIB it seems. However, I think we can generate a DEF and LIB from the DLL itself. Putting something together to test. If it works I'll send a PR for consideration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Participants

      @lidavidm@WillAyd@Kakolukia91@IIFE

      Issue actions

        Building ADBC and flightsql driver on Windows · Issue #2846 · apache/arrow-adbc