John, Look carefully, the ODBC backend just issues a warning that seems to be unimportant.
The build fails because there are two included files that redefine the 'snprintf' symbol. The first definition is in "D:\devsrc\soci-3.2.3\core\soci-platform.h" and the second one (which produces the error) is in "C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h" (a Standard Library file). To fix the error, comment the line 27 of "D:\devsrc\soci-3.2.3\core\soci-platform.h": // #define snprintf _snprintf , so that SOCI ignores its own definition and uses that of the Standard Library instead. Hope it helps. Erasmo. -----Original Message----- From: john [mailto:j...@dgi.com] Sent: viernes 18 de noviembre de 2016 6:52 p. m. To: soci-users@lists.sourceforge.net Subject: Re: [soci-users] Does SOCI support VisualStudio 2015/VC 14? Erasmo, Oh, I see. Sorry that I missed that. lib/soci_core_3_2.lib built successfully. However the odbc backend failed: D:\devsrc\soci-3.2.3\backends\odbc\session.cpp(63): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(2254): note: see declaration of 'sscanf' [ 59%] Building CXX object backends/odbc/CMakeFiles/soci_odbc.dir/standard-into-type.cpp.obj standard-into-type.cpp C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1925): warning C4005: 'snprintf': macro redefinition D:\devsrc\soci-3.2.3\core\soci-platform.h(27): note: see previous definition of 'snprintf' C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1927): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~4.0\VC\bin\amd64\cl.exe' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code '0x2' Stop. Thanks a lot for your help, john On 11/18/2016 2:51 PM, Erasmo Aguilera wrote: > John, > > A SOCI.sln is created by default because you are not specifying any build > system with the -G option for cmake. I don't know if SOCI has issues with > Visual Studio 2015, it shouldn't. But that is why I suggested you to try > building SOCI from the command line with NMake using the "-G "NMake > Makefiles" option (without quotes). Follow the steps I gave you and tell me > how it goes. > > Hope it helps. > > Erasmo. > > -----Original Message----- > From: john [mailto:j...@dgi.com] > Sent: viernes 18 de noviembre de 2016 10:55 a. m. > To: soci-users@lists.sourceforge.net > Subject: Re: [soci-users] Does SOCI support VisualStudio 2015/VC 14? > > Thank you very much Erasmo. The thing is that when I set my build environment > to use VC 11 and then run cmake a SOCI.sln is created which I can then use to > build SOCI. > > However when I set my build environment to use VC 14 and then run cmake a > SOCI.sln is created which is useless. Loading that SOCI.sln gives the > attached errors. So does than mean that with VC 14 I have to build SOCI > outside of devenv? > > john > > > On 11/17/2016 6:38 PM, Erasmo Aguilera wrote: >> Hello John, >> >> It seems that you are building SOCI on an x64 machine, but you are using the >> x86 compiler of Visual Studio. Maybe you are using a x86 configuration for >> the Visual Studio project. To fix it, either change the Visual Studio >> configuration to a x64 one or use NMake for the build instead (just as I do >> it). >> >> If you wanna go with NMake, try the following: >> >> - Open a new command prompt. >> - Run "C:\Program Files (x86)\Microsoft Visual Studio >> 14.0\VC\bin\amd64\vcvars64.bat". This will set the required VC variables for >> using the x64 compiler tools. >> - Try building SOCI again with the same command, but also including >> these options: -G "NMake Makefiles" -DCMAKE_INSTALL_PREFIX=C:\SOCI >> - Run "nmake" >> - Run "nmake install" >> - If everything goes well, you'll find the installed SOCI files in C:\SOCI. >> >> Hope it helps. >> >> PS: Remember, the benefit of using a free tool is at the price of >> support. If you make a question to a user's list and get an answer, >> consider yourself lucky. :) >> >> >> Erasmo. >> >> >> -----Original Message----- >> From: john [mailto:j...@dgi.com] >> Sent: jueves 17 de noviembre de 2016 7:11 p. m. >> To: soci-users@lists.sourceforge.net >> Subject: [soci-users] Does SOCI support VisualStudio 2015/VC 14? >> >> I posted this question on 2016-09-16 but have not seen a response. Does >> anybody know whether or not SOCI supports VisualStudio 2015? Here's my >> original question: >> >> Does soci-3.2.3 support VC 14? The following command appeared to be >> successful: >> >> cmake -DSOCI_STATIC=ON -DWITH_DB2=OFF -DWITH_FIREBIRD=OFF -DWITH_MYSQL=OFF >> -DWITH_ORACLE=OFF -DWITH_POSTGRESQL=OFF -DWITH_SQLITE3=OFF -DSOCI_EMPTY=OFF >> -DWITH_BOOST=ON -DWITH_ODBC=ON -DSOCI_ODBC=ON .. >> >> -- Building for: Visual Studio 14 2015 >> -- The C compiler identification is MSVC 19.0.23026.0 >> -- The CXX compiler identification is MSVC 19.0.23026.0 >> -- Check for working C compiler using: Visual Studio 14 2015 >> -- Check for working C compiler using: Visual Studio 14 2015 -- works >> -- Detecting C compiler ABI info >> -- Detecting C compiler ABI info - done >> -- Check for working CXX compiler using: Visual Studio 14 2015 >> -- Check for working CXX compiler using: Visual Studio 14 2015 -- >> works >> -- Detecting CXX compiler ABI info >> -- Detecting CXX compiler ABI info - done >> -- Detecting CXX compile features >> -- Detecting CXX compile features - done >> -- Configuring SOCI: >> -- SOCI_VERSION = 3.2.3 >> -- SOCI_ABI_VERSION = 3_2 >> >> ... >> >> However all builds fail with messages like: >> >> x64\Debug\backend-loader.obj : fatal error LNK1112: module machine type >> 'x64' conflicts with target machine type 'X86' >> >> I see 14 in the compiler and linker lines: >> >> C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe /c >> /Zi >> /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D >> "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise >> /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_7a48a.dir\Debug\\" >> /Fd"cmTC_7a48a.dir\Debug\vc140.pdb" /Gd /TC /analyze- /errorReport:queue >> "C:\Program Files (x86)\CMake\share\cmake-3.4\Modules\CMakeCCompilerABI.c" >> >> C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe >> /ERRORREPORT:QUEUE >> /OUT:"D:\devsrc\soci-3.2.3\build_64\CMakeFiles\CMakeTmp\Debug\cmTC_7a48a.exe" >> >> /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib >> shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib >> /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" >> /manifest:embed /Debug >> /PDB:"D:/devsrc/soci-3.2.3/build_64/CMakeFiles/CMakeTmp/Debug/cmTC_7a48a.pdb" >> >> /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT >> /IMPLIB:"D:/devsrc/soci-3.2.3/build_64/CMakeFiles/CMakeTmp/Debug/cmTC_7a48a.lib" >> >> /MACHINE:X86 /SAFESEH /machine:X86 /debug >> cmTC_7a48a.dir\Debug\CMakeCCompilerABI.obj >> >> I see /MACHINE:X86 in the link line above. Do I need to edit some SOCI >> config files or does SOCI already support VC 14? >> >> Thanks, >> john >> >> >> --------------------------------------------------------------------- >> - >> -------- _______________________________________________ >> soci-users mailing list >> soci-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/soci-users >> >> --------------------------------------------------------------------- >> - >> -------- _______________________________________________ >> soci-users mailing list >> soci-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/soci-users >> >> > > ---------------------------------------------------------------------- > -------- _______________________________________________ > soci-users mailing list > soci-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/soci-users > > ------------------------------------------------------------------------------ _______________________________________________ soci-users mailing list soci-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/soci-users ------------------------------------------------------------------------------ _______________________________________________ soci-users mailing list soci-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/soci-users