# Building REST VOL on Windows 10

**URL:** <https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654>\
**Category:** HDF5 Library\
**Created:** [June 28, 2021, 3:56pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654 "2021-06-28T15:56:07Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![plessard](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/p/e79b87/32.png) [@plessard](https://forum.hdfgroup.org/u/plessard)\
**Post date:** [June 28, 2021, 3:56pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/1 "2021-06-28T15:56:08Z")

</div>

I have problems building the REST VOL connector using the _[https://github.com/HDFGroup/vol-rest/tree/hdf5\_1\_12\_update](https://github.com/HDFGroup/vol-rest/tree/hdf5_1_12_update)_ Git branch.

The build\_vol\_cmake.bat is empty. Only REM lines.

I tried the Manual Build CMake instruction with no success. I tried with:

- cmake -G “NMake Makefiles” -DCURL\_LIBRARY=C:\curl-7.77.0-win64-mingw\lib\libcurl.a -DCURL\_INCLUDE\_DIR=C:\curl-7.77.0-win64-mingw\include -DYAJL\_LIBRARY=C:\YetAnotherJSONParser\lib\yajl.lib -DYAJL\_INCLUDE\_DIR=C:\YetAnotherJSONParser\include …
- cmake -G “Unix Makefiles” -DCURL\_LIBRARY=C:\curl-7.77.0-win64-mingw\lib\libcurl.a -DCURL\_INCLUDE\_DIR=C:\curl-7.77.0-win64-mingw\include -DYAJL\_LIBRARY=C:\YetAnotherJSONParser\lib\yajl.lib -DYAJL\_INCLUDE\_DIR=C:\YetAnotherJSONParser\include …
- cmake -DC\* URL\_LIBRARY=C:\curl-7.77.0-win64-mingw\lib\libcurl.a -DCURL\_INCLUDE\_DIR=C:\curl-7.77.0-win64-mingw\include -DYAJL\_LIBRARY=C:\YetAnotherJSONParser\lib\yajl.lib -DYAJL\_INCLUDE\_DIR=C:\YetAnotherJSONParser\include …

The last one seems to complete with some errors. The _make_ command complains that there is no makefile.

F:\Dev\Windows\HDF5\_REST\_VOL\vol-rest\build\>cmake -DCURL\_LIBRARY=C:\curl-7.77.0-win64-mingw\lib\libcurl.a -DCURL\_INCLUDE\_DIR=C:\curl-7.77.0-win64-mingw\include -DYAJL\_LIBRARY=C:\YetAnotherJSONParser\lib\yajl.lib -DYAJL\_INCLUDE\_DIR=C:\YetAnotherJSONParser\include …  
– Building for: Visual Studio 16 2019  
– The C compiler identification is MSVC 19.29.30037.0  
– Detecting C compiler ABI info  
– Detecting C compiler ABI info - done  
– Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe - skipped  
– Detecting C compile features  
– Detecting C compile features - done  
– Found Git: C:/Program Files/Git/cmd/git.exe (found version “2.32.0.windows.1”)  
– Found CURL: C:\curl-7.77.0-win64-mingw\lib\libcurl.a (found version “7.77.0”)  
– Could NOT find PkgConfig (missing: PKG\_CONFIG\_EXECUTABLE)  
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:438 (message):  
The package name passed to `find_package_handle_standard_args` (yajl) does  
not match the name of the calling package (YAJL). This can lead to  
problems in calling code that expects `find_package` result variables  
(e.g., `_FOUND`) to follow a certain pattern.  
Call Stack (most recent call first):  
CMake/FindYAJL.cmake:22 (find\_package\_handle\_standard\_args)  
CMakeLists.txt:127 (find\_package)  
This warning is for project developers. Use -Wno-dev to suppress it.

– Found yajl: C:/YetAnotherJSONParser/lib/yajl.lib  
– VERSION: 0.1.0  
– SOVERSION: 200.0.0  
– SOVERSION\_TOOLS: 200.0.0  
– SOVERSION\_CXX: 200.0.0  
– SOVERSION\_F: 200.0.0  
– SOVERSION\_HL: 200.0.0  
– SOVERSION\_HL\_CXX: 200.0.0  
– SOVERSION\_HL\_F: 200.0.0  
– SOVERSION\_JAVA: 200.0.0  
– Looking for include file sys/file.h  
– Looking for include file sys/file.h - not found  
– Looking for include file sys/ioctl.h  
– Looking for include file sys/ioctl.h - not found  
– Looking for include file sys/resource.h  
– Looking for include file sys/resource.h - not found  
– Looking for include file sys/socket.h  
– Looking for include file sys/socket.h - not found  
– Looking for include file sys/stat.h  
– Looking for include file sys/stat.h - found  
– Looking for include files sys/stat.h, sys/time.h  
– Looking for include files sys/stat.h, sys/time.h - not found  
– Looking for include files sys/stat.h, sys/types.h  
– Looking for include files sys/stat.h, sys/types.h - found  
– Looking for 3 include files sys/stat.h, …, features.h  
– Looking for 3 include files sys/stat.h, …, features.h - not found  
– Looking for 3 include files sys/stat.h, …, dirent.h  
– Looking for 3 include files sys/stat.h, …, dirent.h - not found  
– Looking for 3 include files sys/stat.h, …, setjmp.h  
– Looking for 3 include files sys/stat.h, …, setjmp.h - found  
– Looking for 4 include files sys/stat.h, …, stddef.h  
– Looking for 4 include files sys/stat.h, …, stddef.h - found  
– Looking for 5 include files sys/stat.h, …, stdint.h  
– Looking for 5 include files sys/stat.h, …, stdint.h - found  
– Looking for 6 include files sys/stat.h, …, unistd.h  
– Looking for 6 include files sys/stat.h, …, unistd.h - not found  
– Looking for 6 include files sys/stat.h, …, mach/mach\_time.h  
– Looking for 6 include files sys/stat.h, …, mach/mach\_time.h - not found  
– Looking for 6 include files sys/stat.h, …, io.h  
– Looking for 6 include files sys/stat.h, …, io.h - found  
– Looking for 7 include files sys/stat.h, …, winsock2.h  
– Looking for 7 include files sys/stat.h, …, winsock2.h - found  
– Looking for 8 include files sys/stat.h, …, sys/timeb.h  
– Looking for 8 include files sys/stat.h, …, sys/timeb.h - found  
– Looking for 9 include files sys/stat.h, …, globus/common.h  
– Looking for 9 include files sys/stat.h, …, globus/common.h - not found  
– Looking for 9 include files sys/stat.h, …, pdb.h  
– Looking for 9 include files sys/stat.h, …, pdb.h - not found  
– Looking for 9 include files sys/stat.h, …, pthread.h  
– Looking for 9 include files sys/stat.h, …, pthread.h - not found  
– Looking for 9 include files sys/stat.h, …, srbclient.h  
– Looking for 9 include files sys/stat.h, …, srbclient.h - not found  
– Looking for 9 include files sys/stat.h, …, string.h  
– Looking for 9 include files sys/stat.h, …, string.h - found  
– Looking for 10 include files sys/stat.h, …, strings.h  
– Looking for 10 include files sys/stat.h, …, strings.h - not found  
– Looking for 10 include files sys/stat.h, …, stdlib.h  
– Looking for 10 include files sys/stat.h, …, stdlib.h - found  
– Looking for 11 include files sys/stat.h, …, memory.h  
– Looking for 11 include files sys/stat.h, …, memory.h - found  
– Looking for 12 include files sys/stat.h, …, dlfcn.h  
– Looking for 12 include files sys/stat.h, …, dlfcn.h - not found  
– Looking for 12 include files sys/stat.h, …, inttypes.h  
– Looking for 12 include files sys/stat.h, …, inttypes.h - found  
– Looking for 13 include files sys/stat.h, …, netinet/in.h  
– Looking for 13 include files sys/stat.h, …, netinet/in.h - not found  
– Looking for 13 include files sys/stat.h, …, stdbool.h  
– Looking for 13 include files sys/stat.h, …, stdbool.h - found  
– Looking for include file quadmath.h  
– Looking for include file quadmath.h - not found  
– Looking for gethostname in ucb;  
– Looking for gethostname in ucb; - not found  
– Performing Other Test STDC\_HEADERS - Success  
– Looking for sys/types.h  
– Looking for sys/types.h - found  
– Looking for stdint.h  
– Looking for stdint.h - found  
– Looking for stddef.h  
– Looking for stddef.h - found  
– Check size of char  
– Check size of char - done  
– Check size of short  
– Check size of short - done  
– Check size of int  
– Check size of int - done  
– Check size of unsigned  
– Check size of unsigned - done  
– Check size of long  
– Check size of long - done  
– Check size of long long  
– Check size of long long - done  
– Check size of \_\_int64  
– Check size of \_\_int64 - done  
– Check size of float  
– Check size of float - done  
– Check size of double  
– Check size of double - done  
– Check size of long double  
– Check size of long double - done  
– Check size of int8\_t  
– Check size of int8\_t - done  
– Check size of uint8\_t  
– Check size of uint8\_t - done  
– Check size of int\_least8\_t  
– Check size of int\_least8\_t - done  
– Check size of uint\_least8\_t  
– Check size of uint\_least8\_t - done  
– Check size of int\_fast8\_t  
– Check size of int\_fast8\_t - done  
– Check size of uint\_fast8\_t  
– Check size of uint\_fast8\_t - done  
– Check size of int16\_t  
– Check size of int16\_t - done  
– Check size of uint16\_t  
– Check size of uint16\_t - done  
– Check size of int\_least16\_t  
– Check size of int\_least16\_t - done  
– Check size of uint\_least16\_t  
– Check size of uint\_least16\_t - done  
– Check size of int\_fast16\_t  
– Check size of int\_fast16\_t - done  
– Check size of uint\_fast16\_t  
– Check size of uint\_fast16\_t - done  
– Check size of int32\_t  
– Check size of int32\_t - done  
– Check size of uint32\_t  
– Check size of uint32\_t - done  
– Check size of int\_least32\_t  
– Check size of int\_least32\_t - done  
– Check size of uint\_least32\_t  
– Check size of uint\_least32\_t - done  
– Check size of int\_fast32\_t  
– Check size of int\_fast32\_t - done  
– Check size of uint\_fast32\_t  
– Check size of uint\_fast32\_t - done  
– Check size of int64\_t  
– Check size of int64\_t - done  
– Check size of uint64\_t  
– Check size of uint64\_t - done  
– Check size of int\_least64\_t  
– Check size of int\_least64\_t - done  
– Check size of uint\_least64\_t  
– Check size of uint\_least64\_t - done  
– Check size of int\_fast64\_t  
– Check size of int\_fast64\_t - done  
– Check size of uint\_fast64\_t  
– Check size of uint\_fast64\_t - done  
– Check size of size\_t  
– Check size of size\_t - done  
– Check size of ssize\_t  
– Check size of ssize\_t - failed  
– Check size of off\_t  
– Check size of off\_t - done  
– Check size of off64\_t  
– Check size of off64\_t - failed  
– Check size of time\_t  
– Check size of time\_t - done  
– Check size of _Bool  
– Check size of Bool - done  
– Looking for alarm  
– Looking for alarm - not found  
– Looking for fcntl  
– Looking for fcntl - not found  
– Looking for flock  
– Looking for flock - not found  
– Looking for fork  
– Looking for fork - not found  
– Looking for frexpf  
– Looking for frexpf - not found  
– Looking for frexpl  
– Looking for frexpl - not found  
– Looking for getrusage  
– Looking for getrusage - not found  
– Looking for llround  
– Looking for llround - found  
– Looking for llroundf  
– Looking for llroundf - found  
– Looking for lround  
– Looking for lround - found  
– Looking for lroundf  
– Looking for lroundf - found  
– Looking for lstat  
– Looking for lstat - not found  
– Looking for pread  
– Looking for pread - not found  
– Looking for pwrite  
– Looking for pwrite - not found  
– Looking for rand\_r  
– Looking for rand\_r - not found  
– Looking for random  
– Looking for random - not found  
– Looking for round  
– Looking for round - found  
– Looking for roundf  
– Looking for roundf - found  
– Looking for setsysinfo  
– Looking for setsysinfo - not found  
– Looking for signal  
– Looking for signal - found  
– Looking for setjmp  
– Looking for setjmp - found  
– Looking for siglongjmp  
– Looking for siglongjmp - not found  
– Looking for sigsetjmp  
– Looking for sigsetjmp - not found  
– Looking for sigprocmask  
– Looking for sigprocmask - not found  
– Looking for snprintf  
– Looking for snprintf - not found  
– Looking for srandom  
– Looking for srandom - not found  
– Looking for strtoll  
– Looking for strtoll - found  
– Looking for strtoull  
– Looking for strtoull - found  
– Looking for symlink  
– Looking for symlink - not found  
– Looking for tmpfile  
– Looking for tmpfile - found  
– Looking for asprintf  
– Looking for asprintf - not found  
– Looking for vasprintf  
– Looking for vasprintf - not found  
– Looking for waitpid  
– Looking for waitpid - not found  
– Looking for vsnprintf  
– Looking for vsnprintf - not found  
– Looking for sigsetjmp  
– Looking for sigsetjmp - not found  
– Checking for InitOnceExecuteOnce:  
– Performing Test InitOnceExecuteOnce - Success  
– Performing Other Test HAVE\_INLINE - Success  
– Performing Other Test HAVE\_\_\_INLINE_ - Failed  
– Performing Other Test HAVE\_\_\_INLINE - Success  
– Checking for appropriate format for 64 bit long:  
– Checking for appropriate format for 64 bit long: found “I64”  
– Looking for difftime  
– Looking for difftime - found  
– Check size of \_\_float128  
– Check size of \_\_float128 - failed  
– Check size of \_Quad  
– Check size of \_Quad - failed  
– Checking IF your system converts long double to (unsigned) long values with special algorithm… no  
– Checking IF your system can convert (unsigned) long to long double values with special algorithm… no  
– Checking IF correctly converting long double to (unsigned) long long values… yes  
– Checking IF correctly converting (unsigned) long long to long double values… yes  
– Checking IF the cpu is power9 and cannot correctly converting long double values… no  
– Checking IF alignment restrictions are strictly enforced… yes  
– Warnings Configuration: default: /DWIN32 /D\_WINDOWS /W3 :  
– Found Perl: C:/Strawberry/perl/bin/perl.exe (found version “5.32.1”)  
– Generating ‘H5Epubgen.h’  
Generating ‘H5Einit.h’  
Generating ‘H5Eterm.h’  
Generating ‘H5Edefin.h’

– Generating ‘F:/Dev/Windows/HDF5\_REST\_VOL/vol-rest/src/hdf5/src/H5version.h’

– Generating ‘H5overflow.h’

– Cannot execute TEST flushrefresh - perl not found  
– The CXX compiler identification is MSVC 19.29.30037.0  
– Detecting CXX compiler ABI info  
– Detecting CXX compiler ABI info - done  
– Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe - skipped  
– Detecting CXX compile features  
– Detecting CXX compile features - done  
– Check for STD namespace  
– Check for STD namespace - found  
– Looking for C++ include stdint.h  
– Looking for C++ include stdint.h - found  
– Performing CXX Test OLD\_HEADER\_FILENAME - Failed  
– Performing CXX Test HDF\_NO\_NAMESPACE - Failed  
– Performing CXX Test HDF\_NO\_STD - Failed  
– Performing CXX Test BOOL\_NOTDEFINED - Failed  
– Performing CXX Test NO\_STATIC\_CAST - Failed  
– Performing CXX Test CXX\_HAVE\_OFFSETOF - Failed  
– Configuring done  
– Generating done  
– Build files have been written to: F:/Dev/Windows/HDF5\_REST\_VOL/vol-rest/build

F:\Dev\Windows\HDF5\_REST\_VOL\vol-rest\build\>make  
make: \*\*\* No targets specified and no makefile found. Stop.

F:\Dev\Windows\HDF5\_REST\_VOL\vol-rest\build\>

---

<div class="post-metadata">

**Author:** ![jhenderson](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/j/73ab20/32.png) [@jhenderson](https://forum.hdfgroup.org/u/jhenderson)\
**Post date:** [July 12, 2021, 7:01pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/2 "2021-07-12T19:01:15Z")

</div>

Hi @plessard,

Indeed, for now the build process on Windows is a bit more manual since I have not yet fleshed out the .bat file for building. Since it looks like you’re using Visual Studio to build (please correct me if that isn’t the case), you probably want to specify `-G "Visual Studio 16 2019"` to the cmake command to generate a solution file for Visual Studio to use for building. Once that .sln file has been generated, you should be able to either open the .sln file in Visual Studio and build that way, or build directly using `MSBuild <solution_file>.sln`. I imagine that you would have no issues building with MinGW or similar, but for now Visual Studio is the main way that I have built and tested the VOL connector on Windows.

I believe that if CMake detects that Visual Studio is installed on the Windows system, it will default to generating .sln files, which would be why you aren’t seeing a makefile being generated in the third case that you tried.

---

<div class="post-metadata">

**Author:** ![plessard](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/p/e79b87/32.png) [@plessard](https://forum.hdfgroup.org/u/plessard)\
**Post date:** [July 12, 2021, 9:05pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/3 "2021-07-12T21:05:35Z")

</div>

Hi @jhenderson,

I was able to compile the library using -G “Visual Studio 16 2019”. I still have problems with the link phase. I have the following error messages:

17\> Creating library F:/Dev/Windows/HDF5\_REST\_VOL/vol-rest/build/bin/Release/hdf5\_vol\_rest.lib and object F:/Dev/Windows/HDF5\_REST\_VOL/vol-rest/build/bin/Release/hdf5\_vol\_rest.exp  
17\>rest\_vol.obj : error LNK2019: unresolved external symbol \_\_imp\_curl\_easy\_escape referenced in function H5\_rest\_url\_encode\_path  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_escape  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_escape  
17\>rest\_vol.obj : error LNK2019: unresolved external symbol \_\_imp\_curl\_free referenced in function H5\_rest\_url\_encode\_path  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_free  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_free  
17\>rest\_vol.obj : error LNK2019: unresolved external symbol \_\_imp\_curl\_global\_init referenced in function H5\_rest\_init  
17\>rest\_vol.obj : error LNK2019: unresolved external symbol \_\_imp\_curl\_global\_cleanup referenced in function H5\_rest\_term  
17\>rest\_vol\_file.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_append  
17\>rest\_vol\_file.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_slist\_free\_all  
17\>rest\_vol.obj : error LNK2019: unresolved external symbol \_\_imp\_curl\_version\_info referenced in function H5\_rest\_init  
17\>rest\_vol\_file.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_strerror  
17\>rest\_vol.obj : error LNK2019: unresolved external symbol \_\_imp\_curl\_easy\_init referenced in function H5\_rest\_init  
17\>rest\_vol\_file.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_setopt  
17\>rest\_vol\_file.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_perform  
17\>rest\_vol.obj : error LNK2019: unresolved external symbol \_\_imp\_curl\_easy\_cleanup referenced in function H5\_rest\_term  
17\>rest\_vol\_file.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol \_\_imp\_curl\_easy\_getinfo  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol yajl\_tree\_parse  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol yajl\_tree\_parse  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol yajl\_tree\_parse  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol yajl\_tree\_parse  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol yajl\_tree\_parse  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol yajl\_tree\_parse  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol yajl\_tree\_parse  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol yajl\_tree\_free  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol yajl\_tree\_free  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol yajl\_tree\_free  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol yajl\_tree\_free  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol yajl\_tree\_free  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol yajl\_tree\_free  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol yajl\_tree\_free  
17\>rest\_vol\_group.obj : error LNK2001: unresolved external symbol yajl\_tree\_get  
17\>rest\_vol\_link.obj : error LNK2001: unresolved external symbol yajl\_tree\_get  
17\>rest\_vol\_object.obj : error LNK2001: unresolved external symbol yajl\_tree\_get  
17\>rest\_vol.obj : error LNK2001: unresolved external symbol yajl\_tree\_get  
17\>rest\_vol\_attr.obj : error LNK2001: unresolved external symbol yajl\_tree\_get  
17\>rest\_vol\_dataset.obj : error LNK2001: unresolved external symbol yajl\_tree\_get  
17\>rest\_vol\_datatype.obj : error LNK2001: unresolved external symbol yajl\_tree\_get  
17\>C:\YetAnotherJSONParser\lib\yajl.lib : warning LNK4272: library machine type ‘x86’ conflicts with target machine type ‘x64’  
17\>F:\Dev\Windows\HDF5\_REST\_VOL\vol-rest\build\bin\Release\hdf5\_vol\_rest.dll : fatal error LNK1120: 16 unresolved externals  
17\>Done building project “hdf5\_vol\_rest-shared.vcxproj” – FAILED.

I look at the content of the curl library “C:\curl-7.77.0-win64-mingw\lib\libcurl.a” I gave as an argument to cmake and the curl symbols are present but without the \__imp_ prefix.

For the “C:\YetAnotherJSONParser\lib\yajl.lib” the symbols are there but they are beginning with an “\_”.

Thanks for your support.

---

<div class="post-metadata">

**Author:** ![jhenderson](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/j/73ab20/32.png) [@jhenderson](https://forum.hdfgroup.org/u/jhenderson)\
**Post date:** [July 12, 2021, 10:04pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/4 "2021-07-12T22:04:40Z")

</div>

Since you’re building against a statically-built version of curl, you probably need to define `CURL_STATICLIB` for the project. I believe simply adding `-DCURL_STATICLIB=ON` to the cmake command will accomplish this. Previously, I had only built using a shared version of libcurl; I’ll make sure to document this!

As for linking libyajl, this stands out:

`17>C:\YetAnotherJSONParser\lib\yajl.lib : warning LNK4272: library machine type ‘x86’ conflicts with target machine type ‘x64’`

but I otherwise am not sure why the library’s symbols are not as expected. Did you build the YAJL project yourself or are you using a pre-built version from somewhere?

---

<div class="post-metadata">

**Author:** ![plessard](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/p/e79b87/32.png) [@plessard](https://forum.hdfgroup.org/u/plessard)\
**Post date:** [July 13, 2021, 3:40pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/5 "2021-07-13T15:40:53Z")

</div>

I have rebuild the yajl library and the link problems are solved.

But the -DCURL\_STATICLIB=ON is not recognized:  
_CMake Warning:_  
\_ Manually-specified variables were not used by the project:\_  
\_ CURL\_STATICLIB\_

What version of _curl library_ are you using when building for Windows?

---

<div class="post-metadata">

**Author:** ![jhenderson](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/j/73ab20/32.png) [@jhenderson](https://forum.hdfgroup.org/u/jhenderson)\
**Post date:** [July 13, 2021, 6:29pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/6 "2021-07-13T18:29:23Z")

</div>

Good to see you were able to fix the libyajl linking issue! For libcurl, I don’t remember exactly which version I used (it was in the 7.5x series), but I think this is really just an issue of figuring out the right place to define `CURL_STATICLIB`. You might try this patch: [rest\_vol.patch](https://hdf-discourse-1.s3.amazonaws.com/original/2X/a/a4e31f5f6c37a7f4fdbfb3a9bc2e72bb593ce1d1.patch) (570 Bytes)

This adds CURL\_STATICLIB to the C source definitions by putting the declaration in the CMakeLists.txt right before calling find\_package for libcurl. This isn’t a permanent solution, as it would be problematic for shared library versions of libcurl, but I think it should help your case until I can put in a CMake option to choose between the two while building.

---

<div class="post-metadata">

**Author:** ![plessard](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/p/e79b87/32.png) [@plessard](https://forum.hdfgroup.org/u/plessard)\
**Post date:** [July 13, 2021, 8:56pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/7 "2021-07-13T20:56:53Z")

</div>

Your patch have solved the symbol name problem.

But there’s still a problem since we are using a static library. New there is a lot of missing symbols used by the curl library.:

15\> Creating library F:/Dev/Windows/HDF5\_REST\_VOL/vol-rest/build/bin/Debug/hdf5\_vol\_rest.lib and object F:/Dev/Windows/HDF5\_REST\_VOL/vol-rest/build/bin/Debug/hdf5\_vol\_rest.exp  
15\>LINK : warning LNK4098: defaultlib ‘MSVCRT’ conflicts with use of other libs; use /NODEFAULTLIB:library  
15\>libcurl.a(version.o) : error LNK2019: unresolved external symbol zlibVersion referenced in function curl\_version  
15\>libcurl.a(content\_encoding.o) : error LNK2001: unresolved external symbol zlibVersion  
15\>libcurl.a(version.o) : error LNK2019: unresolved external symbol BrotliDecoderVersion referenced in function curl\_version  
15\>libcurl.a(version.o) : error LNK2019: unresolved external symbol ZSTD\_versionNumber referenced in function curl\_version  
15\>libcurl.a(version.o) : error LNK2019: unresolved external symbol idn2\_check\_version referenced in function curl\_version  
15\>libcurl.a(url.o) : error LNK2001: unresolved external symbol idn2\_check\_version  
15\>libcurl.a(version.o) : error LNK2019: unresolved external symbol gsasl\_check\_version referenced in function curl\_version  
15\>libcurl.a(version.o) : error LNK2019: unresolved external symbol nghttp2\_version referenced in function curl\_version\_info  
15\>libcurl.a(http2.o) : error LNK2001: unresolved external symbol nghttp2\_version  
15\>libcurl.a(strerror.o) : error LNK2019: unresolved external symbol \_\_imp\_\_sys\_nerr referenced in function Curl\_strerror  
15\>libcurl.a(mprintf.o) : error LNK2019: unresolved external symbol \_\_\_chkstk\_ms referenced in function dprintf\_formatf  
15\>libcurl.a(cookie.o) : error LNK2001: unresolved external symbol \_\_\_chkstk\_ms  
15\>libcurl.a(netrc.o) : error LNK2001: unresolved external symbol \_\_\_chkstk\_ms  
15\>libcurl.a(formdata.o) : error LNK2001: unresolved external symbol \_\_\_chkstk\_ms  
15\>libcurl.a(mprintf.o) : error LNK2019: unresolved external symbol \_\_mingw\_vsprintf referenced in function curl\_mvfprintf  
15\>libcurl.a(system\_win32.o) : error LNK2019: unresolved external symbol \_\_imp\_WSAStartup referenced in function Curl\_win32\_init  
15\>libcurl.a(system\_win32.o) : error LNK2019: unresolved external symbol \_\_imp\_WSACleanup referenced in function Curl\_win32\_init  
15\>libcurl.a(asyn-thread.o) : error LNK2019: unresolved external symbol \_\_imp\_closesocket referenced in function destroy\_async\_data  
15\>libcurl.a(connect.o) : error LNK2001: unresolved external symbol \_\_imp\_closesocket  
15\>libcurl.a(hostip6.o) : error LNK2001: unresolved external symbol \_\_imp\_closesocket  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol \_\_imp\_closesocket  
15\>libcurl.a(schannel.o) : error LNK2019: unresolved external symbol \_\_imp\_WSAGetLastError referenced in function schannel\_sha256sum  
15\>libcurl.a(ftp.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAGetLastError  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAGetLastError  
15\>libcurl.a(tftp.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAGetLastError  
15\>libcurl.a(asyn-thread.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAGetLastError  
15\>libcurl.a(sendf.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAGetLastError  
15\>libcurl.a(connect.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAGetLastError  
15\>libcurl.a(openssl.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAGetLastError  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_imp\_send  
15\>libcurl.a(asyn-thread.o) : error LNK2001: unresolved external symbol \_\_imp\_send  
15\>libcurl.a(sendf.o) : error LNK2001: unresolved external symbol \_\_imp\_send  
15\>libcurl.a(multi.o) : error LNK2001: unresolved external symbol \_\_imp\_send  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol \_\_imp\_send  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_block\_directions referenced in function ssh\_do  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_init\_ex referenced in function ssh\_connect  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_callback\_set referenced in function ssh\_connect  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_flag referenced in function ssh\_connect  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_init referenced in function ssh\_connect  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_readfile referenced in function ssh\_connect  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_free referenced in function ssh\_connect  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_abstract referenced in function ssh\_attach  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_init referenced in function Curl\_ssh\_init  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_exit referenced in function Curl\_ssh\_cleanup  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_set\_blocking referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_get referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_handshake referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_last\_error referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_userauth\_list referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_userauth\_publickey\_fromfile\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_userauth\_password\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_agent\_init referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_agent\_connect referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_agent\_list\_identities referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_agent\_get\_identity referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_userauth\_keyboard\_interactive\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_init referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_symlink\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_stat\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_last\_error referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_mkdir\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_rename\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_rmdir\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_unlink\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_statvfs referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_open\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_readdir\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_close\_handle referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_scp\_send64 referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_scp\_recv2 referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_channel\_send\_eof referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_channel\_wait\_eof referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_channel\_wait\_closed referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_channel\_free referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_free referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_agent\_disconnect referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_agent\_free referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_hostkey\_hash referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_hostkey referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_checkp referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_agent\_userauth referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_userauth\_authenticated referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_last\_errno referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_shutdown referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_disconnect\_ex referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_seek64 referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_del referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_add referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_knownhost\_writefile referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_session\_method\_pref referenced in function Curl\_ssh\_version  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_channel\_read\_ex referenced in function sshkeycallback  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_channel\_write\_ex referenced in function sshkeycallback  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_read referenced in function sshkeycallback  
15\>libcurl.a(libssh2.o) : error LNK2019: unresolved external symbol libssh2\_sftp\_write referenced in function sshkeycallback  
15\>libcurl.a(url.o) : error LNK2019: unresolved external symbol idn2\_free referenced in function conn\_free  
15\>libcurl.a(url.o) : error LNK2019: unresolved external symbol idn2\_lookup\_ul referenced in function Curl\_idnconvert\_hostname  
15\>libcurl.a(url.o) : error LNK2019: unresolved external symbol idn2\_strerror referenced in function Curl\_idnconvert\_hostname  
15\>libcurl.a(sendf.o) : error LNK2019: unresolved external symbol \_\_imp\_recv referenced in function Curl\_send\_plain  
15\>libcurl.a(connect.o) : error LNK2001: unresolved external symbol \_\_imp\_recv  
15\>libcurl.a(openssl.o) : error LNK2001: unresolved external symbol \_\_imp\_recv  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol \_\_imp\_recv  
15\>libcurl.a(multi.o) : error LNK2019: unresolved external symbol \_\_imp\_WSACreateEvent referenced in function Curl\_multi\_handle  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_imp\_WSACreateEvent  
15\>libcurl.a(multi.o) : error LNK2019: unresolved external symbol \_\_imp\_WSAEventSelect referenced in function multi\_wait  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAEventSelect  
15\>libcurl.a(multi.o) : error LNK2019: unresolved external symbol \_\_imp\_WSAWaitForMultipleEvents referenced in function multi\_wait  
15\>libcurl.a(multi.o) : error LNK2019: unresolved external symbol \_\_imp\_WSAEnumNetworkEvents referenced in function multi\_wait  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAEnumNetworkEvents  
15\>libcurl.a(multi.o) : error LNK2019: unresolved external symbol \_\_imp\_WSAResetEvent referenced in function multi\_wait  
15\>libcurl.a(multi.o) : error LNK2019: unresolved external symbol \_\_imp\_WSASetEvent referenced in function curl\_multi\_wakeup  
15\>libcurl.a(multi.o) : error LNK2019: unresolved external symbol \_\_imp\_WSACloseEvent referenced in function curl\_multi\_cleanup  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_imp\_WSACloseEvent  
15\>libcurl.a(imap.o) : error LNK2019: unresolved external symbol \_\_mingw\_vsscanf referenced in function imap\_do  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(rtsp.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(http\_proxy.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(parsedate.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(urlapi.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(http.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(ftp.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(altsvc.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(hsts.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(cookie.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(hostip.o) : error LNK2001: unresolved external symbol \_\_mingw\_vsscanf  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_submit\_rst\_stream referenced in function Curl\_http2\_done  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_send referenced in function Curl\_http2\_done  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_set\_stream\_user\_data referenced in function Curl\_http2\_done  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_pack\_settings\_payload referenced in function Curl\_http2\_request\_upgrade  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_resume\_data referenced in function Curl\_http2\_done\_sending  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_want\_write referenced in function Curl\_http2\_done\_sending  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_priority\_spec\_init referenced in function Curl\_http2\_done\_sending  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_submit\_priority referenced in function Curl\_http2\_done\_sending  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_mem\_recv referenced in function h2\_process\_pending\_input  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_strerror referenced in function h2\_process\_pending\_input  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_check\_request\_allowed referenced in function h2\_process\_pending\_input  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_want\_read referenced in function h2\_process\_pending\_input  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_new referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_set\_send\_callback referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_set\_on\_frame\_recv\_callback referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_set\_on\_data\_chunk\_recv\_callback referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_set\_on\_stream\_close\_callback referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_set\_on\_begin\_headers\_callback referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_set\_on\_header\_callback referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_set\_error\_callback referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_client\_new referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_callbacks\_del referenced in function Curl\_http2\_setup  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_upgrade2 referenced in function Curl\_http2\_switched  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_submit\_settings referenced in function Curl\_http2\_switched  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_set\_local\_window\_size referenced in function Curl\_http2\_switched  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_is\_fatal referenced in function http2\_send  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_submit\_request referenced in function http2\_send  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_del referenced in function http2\_disconnect  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_submit\_ping referenced in function http2\_conncheck  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_get\_stream\_user\_data referenced in function http2\_conncheck  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_session\_get\_remote\_settings referenced in function http2\_conncheck  
15\>libcurl.a(http2.o) : error LNK2019: unresolved external symbol nghttp2\_http2\_strerror referenced in function http2\_conncheck  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_ntohs referenced in function Curl\_addr2string  
15\>libcurl.a(ftp.o) : error LNK2001: unresolved external symbol \_\_imp\_ntohs  
15\>libcurl.a(socks\_sspi.o) : error LNK2001: unresolved external symbol \_\_imp\_ntohs  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_getpeername referenced in function Curl\_conninfo\_remote  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_getsockname referenced in function Curl\_conninfo\_local  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol \_\_imp\_getsockname  
15\>libcurl.a(ftp.o) : error LNK2001: unresolved external symbol \_\_imp\_getsockname  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_getsockopt referenced in function Curl\_is\_connected  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_WSASetLastError referenced in function Curl\_is\_connected  
15\>libcurl.a(curl\_addrinfo.o) : error LNK2001: unresolved external symbol \_\_imp\_WSASetLastError  
15\>libcurl.a(select.o) : error LNK2001: unresolved external symbol \_\_imp\_WSASetLastError  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_setsockopt referenced in function Curl\_sndbufset  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol \_\_imp\_setsockopt  
15\>libcurl.a(transfer.o) : error LNK2001: unresolved external symbol \_\_imp\_setsockopt  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_WSAIoctl referenced in function Curl\_connecthost  
15\>libcurl.a(transfer.o) : error LNK2001: unresolved external symbol \_\_imp\_WSAIoctl  
15\>libcurl.a(smb.o) : error LNK2001: unresolved external symbol \_\_imp\_htons  
15\>libcurl.a(doh.o) : error LNK2001: unresolved external symbol \_\_imp\_htons  
15\>libcurl.a(socks\_sspi.o) : error LNK2001: unresolved external symbol \_\_imp\_htons  
15\>libcurl.a(connect.o) : error LNK2001: unresolved external symbol \_\_imp\_htons  
15\>libcurl.a(curl\_addrinfo.o) : error LNK2001: unresolved external symbol \_\_imp\_htons  
15\>libcurl.a(ftp.o) : error LNK2001: unresolved external symbol \_\_imp\_htons  
15\>libcurl.a(telnet.o) : error LNK2001: unresolved external symbol \_\_imp\_htons  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_bind referenced in function Curl\_connecthost  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol \_\_imp\_bind  
15\>libcurl.a(ftp.o) : error LNK2001: unresolved external symbol \_\_imp\_bind  
15\>libcurl.a(tftp.o) : error LNK2001: unresolved external symbol \_\_imp\_bind  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_connect referenced in function Curl\_connecthost  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol \_\_imp\_connect  
15\>libcurl.a(connect.o) : error LNK2019: unresolved external symbol \_\_imp\_socket referenced in function Curl\_connalive  
15\>libcurl.a(hostip6.o) : error LNK2001: unresolved external symbol \_\_imp\_socket  
15\>libcurl.a(socketpair.o) : error LNK2001: unresolved external symbol _imp\_socket  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol inflateInit referenced in function deflate\_init\_writer  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol inflateEnd referenced in function deflate\_unencode\_write  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol inflate referenced in function deflate\_close\_writer  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol inflateInit2_ referenced in function deflate\_close\_writer  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol BrotliDecoderCreateInstance referenced in function brotli\_init\_writer  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol BrotliDecoderDecompressStream referenced in function brotli\_unencode\_write  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol BrotliDecoderDestroyInstance referenced in function brotli\_unencode\_write  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol BrotliDecoderGetErrorCode referenced in function brotli\_unencode\_write  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol ZSTD\_createDStream referenced in function zstd\_init\_writer  
15\>libcurl.a(content\_encoding.o) : error LNK2019: unresolved external symbol ZSTD\_decompressStream referenced in function zstd\_unencode\_write

and more…

---

<div class="post-metadata">

**Author:** ![jhenderson](https://forum.hdfgroup.org/letter_avatar_proxy/v4/letter/j/73ab20/32.png) [@jhenderson](https://forum.hdfgroup.org/u/jhenderson)\
**Post date:** [July 13, 2021, 9:46pm UTC](https://forum.hdfgroup.org/t/building-rest-vol-on-windows-10/8654/8 "2021-07-13T21:46:04Z")

</div>

Hmm, you might refer to [https://github.com/Microsoft/vcpkg/issues/2621](https://github.com/Microsoft/vcpkg/issues/2621) on this. It seems there are several other libraries that are missing at link time here, including zlib and windows system libraries. You might need to track down which extra libraries curl needs to link correctly.

Otherwise, would it be possible to try building or getting a build of curl that’s built as a shared library? It seems some more testing needs to be done for static library builds, but shared library builds were tested and working.
