root-project / cling

The cling C++ interpreter
Other
3.51k stars 270 forks source link

The (Failed) Adventures in building Cling under Windows 10 with VS2017 #186

Closed konstantint closed 6 years ago

konstantint commented 7 years ago

One rainy Wednesday evening I was looking for procrastination options and I found them in the form of setting up Cling. Let me tell you this story, hoping it may be useful to either someone planning to repeat this or to work on improving this process.

I started by searching precompiled Windows binaries. For some reason (why?) the official are not available, but I found the Anaconda cling package. So I tried installing it first:

After the download was complete I found the cling binaries under Anaconda3\envs\cling\Library\bin, however cling.exe threw a bunch of warnings and crashed on any nontrivial command. OK, why not compile Cling myself, right? The night was young.

At this point I gave up. Apparently it's easier to run cling in a docker container at the moment. But maybe I missed some very easy shortcut along the way?

ahmidou commented 6 years ago

Hi, I successfully compiled cling on on the same config as you. in gitbash: git clone http://root.cern.ch/git/llvm.git src cd src git checkout cling-patches cd tools git clone http://root.cern.ch/git/cling.git git clone http://root.cern.ch/git/clang.git cd clang git checkout cling-patches cd ../..

mkdir build cd build REM cmake -DCMAKE_INSTALL_PREFIX=[Install Path] -DCMAKE_BUILD_TYPE=[Build configuration, e.g. Release or Debug] ..\src cmake -DCMAKE_INSTALL_PREFIX=C:/WORK/CLING -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 15 2017 Win64" C:/WORK/CLING/src cmake --build . cmake --build . --target install

I hope this help!

konstantint commented 6 years ago

Does it work after compilation?

ahmidou commented 6 years ago

yes, I'm currently playing with it

danhambleton commented 6 years ago

@ahmidou Thank you! I was able to build with Visual Studio 14 2015.

konstantint commented 6 years ago

@ahmidou Worked for me as well!

I think this needs to go somewhere into the docs along with suggestions not to touch cpt.py :)

konstantint commented 6 years ago

Let me add here that the build took several hours. The build directory at the end of the process took around 34GB (maybe more, noticed the number only while deleting it), the install directory is 7.7GB, of which bin is 3.40GB.

Cling.exe itself is 210MB. Libclang, libcling, libclingJupyter are 170MB each, etc. (The Jupyter kernel does not work on windows due to use of fnctl somewhere in the python wrapper, btw).

ahmidou commented 6 years ago

Nice!! about the build time, LLVM is known to be huge and long to build.

2017-11-10 8:46 GMT+01:00 Konstantin Tretyakov notifications@github.com:

Let me add here that the build took several hours. The build directory at the end of the process took around 34GB (maybe more, noticed the number only while deleting it), the install directory is 7.7GB, of which bin is 3.40GB.

Cling.exe itself is 210MB. Libclang, libcling, libclingJupyter are 170MB each, etc. (The Jupyter kernel does not work on windows due to use of fnctl somewhere in the python wrapper, btw).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/root-project/cling/issues/186#issuecomment-343398569, or mute the thread https://github.com/notifications/unsubscribe-auth/ACFEwmtMgU_iKoX1chC0pwRX8r3l6xR3ks5s0_9rgaJpZM4P3C4Z .

Zmote commented 6 years ago

For anyone who it might concern, you might need to update your CMAKE before building for Visual Studio 2017. I did try to build it with Cmake 3.9.6 RC and it didnt work, but after updating to Cmake 3.10.0 (version number is three ten zero, not three one zero!) it worked very well. Thanks @ahmidou, really helpful!

danhambleton commented 6 years ago

Also, one more note: for VS2015, you must install Update 3.

liudonghua123 commented 6 years ago

I built with Visual Studio 2017 and cmake version 3.10.1, followed the instructions on https://root.cern.ch/cling-build-instructions.

git clone http://root.cern.ch/git/llvm.git src
cd src
git checkout cling-patches
cd tools
git clone http://root.cern.ch/git/cling.git
git clone http://root.cern.ch/git/clang.git
cd clang
git checkout cling-patches
# cd ../..
cd ../../..
mkdir build
cd build
# add parallel build support
# https://stackoverflow.com/questions/601970/how-do-i-utilise-all-the-cores-for-nmake
set CL=/MP
# cmake -DCMAKE_INSTALL_PREFIX=[Install Path] -DCMAKE_BUILD_TYPE=[Build configuration, e.g. Release or Debug] ..\src
cmake -DCMAKE_INSTALL_PREFIX=../release -DCMAKE_BUILD_TYPE=Release ..\src
cmake --build .
cmake --build . --target install

And in the building process while excuting cmake --build .. it showed me the following errors.

......
PrepareForBuild:
  Creating directory "cling.dir\Debug\cling.tlog\".
InitializeBuildStatus:
  Creating "cling.dir\Debug\cling.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule D:/code/cling/src/tools/cling/tools/driver/CMakeLists.txt
  CMake does not need to re-run because D:/code/cling/build/tools/cling/tools/driver/CMakeFiles/generate.stamp is up-to-date.
ClCompile:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin\HostX86\x86\CL.exe /c /ID:\code\cling\build\tools\cling\t
  ools\driver /ID:\code\cling\src\tools\cling\tools\driver /ID:\code\cling\src\tools\cling\include /ID:\code\cling\build\tools\cling\include /ID:\code\
  cling\src\tools\cling\..\clang\include /ID:\code\cling\build\tools\cling\..\clang\include /ID:\code\cling\build\include /ID:\code\cling\src\include /
  Zi /nologo /W4 /WX- /diagnostics:classic /MP /Od /Ob0 /Oi /Oy- /D WIN32 /D _WINDOWS /D _HAS_EXCEPTIONS=0 /D GTEST_HAS_RTTI=0 /D LLVM_BUILD_GLOBAL_ISE
  L /D _LARGEFILE_SOURCE /D _FILE_OFFSET_BITS=64 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_SECURE_NO_WARNINGS /D _CRT_NONSTDC_NO_DEPRECATE /D _CRT_NONSTDC_NO
  _WARNINGS /D _SCL_SECURE_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /D UNICODE /D _UNICODE /D __STDC_CONSTANT_MACROS /D __STDC_FORMAT_MACROS /D __STDC_L
  IMIT_MACROS /D NOMINMAX /D _GNU_SOURCE /D "CLING_VERSION=0.6~dev" /D "CMAKE_INTDIR=\"Debug\"" /D _UNICODE /D UNICODE /Gm- /RTC1 /MDd /GS /fp:precise
  /Zc:wchar_t /Zc:forScope /Zc:inline /Zc:rvalueCast /GR- /std:c++14 /Fo"cling.dir\Debug\\" /Fd"cling.dir\Debug\vc141.pdb" /Gd /TP /wd4141 /wd4146 /wd4
  180 /wd4244 /wd4258 /wd4267 /wd4291 /wd4345 /wd4351 /wd4355 /wd4456 /wd4457 /wd4458 /wd4459 /wd4503 /wd4624 /wd4722 /wd4800 /wd4100 /wd4127 /wd4512 /
  wd4505 /wd4610 /wd4510 /wd4702 /wd4245 /wd4706 /wd4310 /wd4701 /wd4703 /wd4389 /wd4611 /wd4805 /wd4204 /wd4577 /wd4091 /wd4592 /wd4319 /wd4324 /analy
  ze- /errorReport:queue /we4238  /Zc:strictStrings -w14062 /EHs-c- D:\code\cling\src\tools\cling\tools\driver\cling.cpp
  cling.cpp
ResourceCompile:
  C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86\rc.exe /D RC_VERSION_FIELD_1=0 /D RC_VERSION_FIELD_2=6 /D RC_VERSION_FIELD_3=0 /D RC_VERS
  ION_FIELD_4=0 /D "RC_FILE_VERSION=\\\"0.6~dev (LLVM 5.0.0git-e0b472e46eb)\\\"" /D "RC_INTERNAL_NAME=\\\"cling\\\"" /D "RC_PRODUCT_NAME=\\\"cling\\\""
   /D "RC_PRODUCT_VERSION=\\\"0.6~dev (LLVM 5.0.0git-e0b472e46eb)\\\"" /D WIN32 /D _DEBUG /D _WINDOWS /D _HAS_EXCEPTIONS=0 /D GTEST_HAS_RTTI=0 /D LLVM_
  BUILD_GLOBAL_ISEL /D _LARGEFILE_SOURCE /D _FILE_OFFSET_BITS=64 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_SECURE_NO_WARNINGS /D _CRT_NONSTDC_NO_DEPRECATE /D
   _CRT_NONSTDC_NO_WARNINGS /D _SCL_SECURE_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /D UNICODE /D _UNICODE /D __STDC_CONSTANT_MACROS /D __STDC_FORMAT_MA
  CROS /D __STDC_LIMIT_MACROS /D NOMINMAX /D _GNU_SOURCE /D "CLING_VERSION=0.6~dev" /D "CMAKE_INTDIR=\\\"Debug\\\"" /D _UNICODE /D UNICODE /l"0x0409" /
  ID:\code\cling\build\tools\cling\tools\driver /ID:\code\cling\src\tools\cling\tools\driver /ID:\code\cling\src\tools\cling\include /ID:\code\cling\bu
  ild\tools\cling\include /ID:\code\cling\src\tools\cling\..\clang\include /ID:\code\cling\build\tools\cling\..\clang\include /ID:\code\cling\build\inc
  lude /ID:\code\cling\src\include /nologo /fo"cling.dir\Debug\windows_version_resource.res" D:\code\cling\src\resources\windows_version_resource.rc
PreLinkEvent:
  Description: Auto build dll exports
  setlocal
  cd D:\code\cling\build
  if %errorlevel% neq 0 goto :cmEnd
  D:\apps\cmake\bin\cmake.exe -E __create_def D:/code/cling/build/tools/cling/tools/driver/cling.dir/Debug/exports.def D:/code/cling/build/tools/cling/
  tools/driver/cling.dir/Debug//objects.txt
  if %errorlevel% neq 0 goto :cmEnd
  :cmEnd
  endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
  :cmErrorLevel
  exit /b %1
  :cmDone
  if %errorlevel% neq 0 goto :VCEnd
  :VCEnd
Link:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin\HostX86\x86\link.exe /ERRORREPORT:QUEUE /OUT:"D:\code\cli
  ng\build\Debug\bin\cling.exe" /INCREMENTAL /NOLOGO ..\..\..\..\Debug\lib\LLVMSupport.lib ..\..\..\..\Debug\lib\clangFrontendTool.lib ..\..\..\..\Debu
  g\lib\clingUserInterface.lib ..\..\..\..\Debug\lib\clangRewriteFrontend.lib ..\..\..\..\Debug\lib\clangARCMigrate.lib ..\..\..\..\Debug\lib\clangStat
  icAnalyzerFrontend.lib ..\..\..\..\Debug\lib\clangStaticAnalyzerCheckers.lib ..\..\..\..\Debug\lib\clangASTMatchers.lib ..\..\..\..\Debug\lib\clangSt
  aticAnalyzerCore.lib ..\..\..\..\Debug\lib\clangRewrite.lib ..\..\..\..\Debug\lib\clingMetaProcessor.lib ..\..\..\..\Debug\lib\clingInterpreter.lib .
  .\..\..\..\Debug\lib\clangCodeGen.lib ..\..\..\..\Debug\lib\LLVMCoroutines.lib ..\..\..\..\Debug\lib\LLVMCoverage.lib ..\..\..\..\Debug\lib\LLVMLTO.l
  ib ..\..\..\..\Debug\lib\LLVMObjCARCOpts.lib ..\..\..\..\Debug\lib\LLVMPasses.lib ..\..\..\..\Debug\lib\clangFrontend.lib ..\..\..\..\Debug\lib\clang
  Driver.lib version.lib ..\..\..\..\Debug\lib\LLVMOption.lib ..\..\..\..\Debug\lib\clangSerialization.lib ..\..\..\..\Debug\lib\LLVMOrcJIT.lib ..\..\.
  .\..\Debug\lib\LLVMExecutionEngine.lib ..\..\..\..\Debug\lib\LLVMRuntimeDyld.lib ..\..\..\..\Debug\lib\LLVMAArch64CodeGen.lib ..\..\..\..\Debug\lib\L
  LVMAArch64AsmParser.lib ..\..\..\..\Debug\lib\LLVMAArch64Disassembler.lib ..\..\..\..\Debug\lib\LLVMAArch64Desc.lib ..\..\..\..\Debug\lib\LLVMAArch64
  AsmPrinter.lib ..\..\..\..\Debug\lib\LLVMAArch64Info.lib ..\..\..\..\Debug\lib\LLVMAArch64Utils.lib ..\..\..\..\Debug\lib\LLVMAMDGPUCodeGen.lib ..\..
  \..\..\Debug\lib\LLVMAMDGPUAsmParser.lib ..\..\..\..\Debug\lib\LLVMAMDGPUDisassembler.lib ..\..\..\..\Debug\lib\LLVMAMDGPUDesc.lib ..\..\..\..\Debug\
  lib\LLVMAMDGPUAsmPrinter.lib ..\..\..\..\Debug\lib\LLVMAMDGPUInfo.lib ..\..\..\..\Debug\lib\LLVMAMDGPUUtils.lib ..\..\..\..\Debug\lib\LLVMARMCodeGen.
  lib ..\..\..\..\Debug\lib\LLVMARMAsmParser.lib ..\..\..\..\Debug\lib\LLVMARMDisassembler.lib ..\..\..\..\Debug\lib\LLVMARMDesc.lib ..\..\..\..\Debug\
  lib\LLVMARMAsmPrinter.lib ..\..\..\..\Debug\lib\LLVMARMInfo.lib ..\..\..\..\Debug\lib\LLVMBPFCodeGen.lib ..\..\..\..\Debug\lib\LLVMBPFDesc.lib ..\..\
  ..\..\Debug\lib\LLVMBPFAsmPrinter.lib ..\..\..\..\Debug\lib\LLVMBPFDisassembler.lib ..\..\..\..\Debug\lib\LLVMBPFInfo.lib ..\..\..\..\Debug\lib\LLVMH
  exagonCodeGen.lib ..\..\..\..\Debug\lib\LLVMHexagonAsmParser.lib ..\..\..\..\Debug\lib\LLVMHexagonDisassembler.lib ..\..\..\..\Debug\lib\LLVMHexagonD
  esc.lib ..\..\..\..\Debug\lib\LLVMHexagonInfo.lib ..\..\..\..\Debug\lib\LLVMLanaiCodeGen.lib ..\..\..\..\Debug\lib\LLVMLanaiAsmParser.lib ..\..\..\..
  \Debug\lib\LLVMLanaiDisassembler.lib ..\..\..\..\Debug\lib\LLVMLanaiDesc.lib ..\..\..\..\Debug\lib\LLVMLanaiAsmPrinter.lib ..\..\..\..\Debug\lib\LLVM
  LanaiInfo.lib ..\..\..\..\Debug\lib\LLVMMipsCodeGen.lib ..\..\..\..\Debug\lib\LLVMMipsAsmParser.lib ..\..\..\..\Debug\lib\LLVMMipsDesc.lib ..\..\..\.
  .\Debug\lib\LLVMMipsAsmPrinter.lib ..\..\..\..\Debug\lib\LLVMMipsDisassembler.lib ..\..\..\..\Debug\lib\LLVMMipsInfo.lib ..\..\..\..\Debug\lib\LLVMMS
  P430CodeGen.lib ..\..\..\..\Debug\lib\LLVMMSP430Desc.lib ..\..\..\..\Debug\lib\LLVMMSP430AsmPrinter.lib ..\..\..\..\Debug\lib\LLVMMSP430Info.lib ..\.
  .\..\..\Debug\lib\LLVMNVPTXCodeGen.lib ..\..\..\..\Debug\lib\LLVMipo.lib ..\..\..\..\Debug\lib\LLVMIRReader.lib ..\..\..\..\Debug\lib\LLVMAsmParser.l
  ib ..\..\..\..\Debug\lib\LLVMInstrumentation.lib ..\..\..\..\Debug\lib\LLVMLinker.lib ..\..\..\..\Debug\lib\LLVMVectorize.lib ..\..\..\..\Debug\lib\L
  LVMNVPTXDesc.lib ..\..\..\..\Debug\lib\LLVMNVPTXAsmPrinter.lib ..\..\..\..\Debug\lib\LLVMNVPTXInfo.lib ..\..\..\..\Debug\lib\LLVMPowerPCCodeGen.lib .
  .\..\..\..\Debug\lib\LLVMPowerPCAsmParser.lib ..\..\..\..\Debug\lib\LLVMPowerPCDesc.lib ..\..\..\..\Debug\lib\LLVMPowerPCAsmPrinter.lib ..\..\..\..\D
  ebug\lib\LLVMPowerPCDisassembler.lib ..\..\..\..\Debug\lib\LLVMPowerPCInfo.lib ..\..\..\..\Debug\lib\LLVMSparcCodeGen.lib ..\..\..\..\Debug\lib\LLVMS
  parcAsmParser.lib ..\..\..\..\Debug\lib\LLVMSparcDesc.lib ..\..\..\..\Debug\lib\LLVMSparcAsmPrinter.lib ..\..\..\..\Debug\lib\LLVMSparcDisassembler.l
  ib ..\..\..\..\Debug\lib\LLVMSparcInfo.lib ..\..\..\..\Debug\lib\LLVMSystemZCodeGen.lib ..\..\..\..\Debug\lib\LLVMSystemZAsmParser.lib ..\..\..\..\De
  bug\lib\LLVMSystemZDisassembler.lib ..\..\..\..\Debug\lib\LLVMSystemZDesc.lib ..\..\..\..\Debug\lib\LLVMSystemZAsmPrinter.lib ..\..\..\..\Debug\lib\L
  LVMSystemZInfo.lib ..\..\..\..\Debug\lib\LLVMX86CodeGen.lib ..\..\..\..\Debug\lib\LLVMGlobalISel.lib ..\..\..\..\Debug\lib\LLVMX86AsmParser.lib ..\..
  \..\..\Debug\lib\LLVMX86Desc.lib ..\..\..\..\Debug\lib\LLVMX86AsmPrinter.lib ..\..\..\..\Debug\lib\LLVMX86Disassembler.lib ..\..\..\..\Debug\lib\LLVM
  X86Info.lib ..\..\..\..\Debug\lib\LLVMX86Utils.lib ..\..\..\..\Debug\lib\LLVMXCoreCodeGen.lib ..\..\..\..\Debug\lib\LLVMAsmPrinter.lib ..\..\..\..\De
  bug\lib\LLVMDebugInfoCodeView.lib ..\..\..\..\Debug\lib\LLVMDebugInfoMSF.lib ..\..\..\..\Debug\lib\LLVMSelectionDAG.lib ..\..\..\..\Debug\lib\LLVMCod
  eGen.lib ..\..\..\..\Debug\lib\LLVMBitWriter.lib ..\..\..\..\Debug\lib\LLVMScalarOpts.lib ..\..\..\..\Debug\lib\LLVMInstCombine.lib ..\..\..\..\Debug
  \lib\LLVMTarget.lib ..\..\..\..\Debug\lib\LLVMTransformUtils.lib ..\..\..\..\Debug\lib\LLVMAnalysis.lib ..\..\..\..\Debug\lib\LLVMObject.lib ..\..\..
  \..\Debug\lib\LLVMBitReader.lib ..\..\..\..\Debug\lib\LLVMProfileData.lib ..\..\..\..\Debug\lib\LLVMXCoreDesc.lib ..\..\..\..\Debug\lib\LLVMXCoreAsmP
  rinter.lib ..\..\..\..\Debug\lib\LLVMXCoreDisassembler.lib ..\..\..\..\Debug\lib\LLVMXCoreInfo.lib ..\..\..\..\Debug\lib\LLVMMCDisassembler.lib ..\..
  \..\..\Debug\lib\clingUtils.lib ..\..\..\..\Debug\lib\clangParse.lib ..\..\..\..\Debug\lib\LLVMMCParser.lib ..\..\..\..\Debug\lib\clangSema.lib ..\..
  \..\..\Debug\lib\clangAnalysis.lib ..\..\..\..\Debug\lib\clangEdit.lib ..\..\..\..\Debug\lib\clangAST.lib ..\..\..\..\Debug\lib\clangLex.lib ..\..\..
  \..\Debug\lib\clangBasic.lib ..\..\..\..\Debug\lib\LLVMCore.lib ..\..\..\..\Debug\lib\LLVMBinaryFormat.lib ..\..\..\..\Debug\lib\LLVMMC.lib ..\..\..\
  ..\Debug\lib\LLVMSupport.lib psapi.lib shell32.lib ole32.lib uuid.lib ..\..\..\..\Debug\lib\LLVMDemangle.lib kernel32.lib user32.lib gdi32.lib winspo
  ol.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /DEF:"D:/code/cling/build/tools/cling/tools/driver/cling.dir/Debug/expor
  ts.def" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"D:/code/cling/build/Debug/bin/cling.pdb" /SUBSYSTEM:
  CONSOLE /STACK:"10000000" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:/code/cling/build/Debug/lib/cling.lib" /MACHINE:X86 /SAFESEH  /machine:X86 /EXPO
  RT:?kEmptyCollection@valuePrinterInternal@cling@@3QEBDEB /EXPORT:??_7type_info@@6B@ /EXPORT:?__type_info_root_node@@3U__type_info_node@@A /EXPORT:?no
  throw@std@@3Unothrow_t@1@B /EXPORT:?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z /EXPORT:_Init_thread_abort /EXPORT:_Init_thread_epoch /EXPORT:_Init_
  thread_footer /EXPORT:_Init_thread_header /EXPORT:_tls_index /EXPORT:??2@YAPEAX_K@Z /EXPORT:??3@YAXPEAX@Z /EXPORT:??_U@YAPEAX_K@Z /EXPORT:??_V@YAXPEA
  X@Z /EXPORT:?print@Decl@clang@@QEBAXAEAVraw_ostream@llvm@@I_N@Z /EXPORT:?getAsString@QualType@clang@@SA?AV?"$"basic_string@DU?"$"char_traits@D@std@@V
  ?"$"allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@Z /EXPORT:??6raw_ostream@llvm@@QEAAAEAV01@PEBX@Z /EXPORT:?getQualifiedNameAsString@NamedDecl@clang@
  @QEBA?AV?"$"basic_string@DU?"$"char_traits@D@std@@V?"$"allocator@D@2@@std@@XZ /EXPORT:?insert_imp_big@SmallPtrSetImplBase@llvm@@AEAA?AU?"$"pair@PEBQE
  BX_N@std@@PEBX@Z /EXPORT:?getAsStringInternal@QualType@clang@@SAXPEBVType@2@VQualifiers@2@AEAV?"$"basic_string@DU?"$"char_traits@D@std@@V?"$"allocato
  r@D@2@@std@@AEBUPrintingPolicy@2@@Z /EXPORT:?decls_begin@DeclContext@clang@@QEBA?AVdecl_iterator@12@XZ /EXPORT:?field_begin@RecordDecl@clang@@QEBA?AV
  ?"$"specific_decl_iterator@VFieldDecl@clang@@@DeclContext@2@XZ /EXPORT:?errs@llvm@@YAAEAVraw_ostream@1@XZ /EXPORT:?grow_pod@SmallVectorBase@llvm@@IEA
  AXPEAX_K1@Z /EXPORT:?write@raw_ostream@llvm@@QEAAAEAV12@E@Z /EXPORT:?write@raw_ostream@llvm@@QEAAAEAV12@PEBD_K@Z /EXPORT:?castFromDeclContext@Decl@cl
  ang@@SAPEAV12@PEBVDeclContext@2@@Z /EXPORT:??1raw_ostream@llvm@@UEAA@XZ /EXPORT:??1raw_string_ostream@llvm@@UEAA@XZ /EXPORT:?flush_nonempty@raw_ostre
  am@llvm@@AEAAXXZ /EXPORT:?getASTContext@Decl@clang@@QEBAAEAVASTContext@2@XZ /EXPORT:?handle@raw_ostream@llvm@@EEAAXXZ /EXPORT:?preferred_buffer_size@
  raw_ostream@llvm@@MEBA_KXZ /EXPORT:?write_impl@raw_string_ostream@llvm@@EEAAXPEBD_K@Z /EXPORT:?castToDeclContext@Decl@clang@@SAPEAVDeclContext@2@PEBV
  12@@Z /EXPORT:?classof@DeclContext@clang@@SA_NPEBVDecl@2@@Z cling.dir\Debug\windows_version_resource.res
  cling.dir\Debug\cling.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\AutoSynthesizer.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\AutoloadCallback.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ASTTransformer.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\BackendPasses.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\CheckEmptyTransactionTransformer.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\CIFactory.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ClangInternalState.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ClingCodeCompleteConsumer.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ClingPragmas.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\DeclCollector.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\DeclExtractor.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\DeclUnloader.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\DynamicLibraryManager.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\DynamicLookup.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\DynamicExprInfo.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\Exception.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ExternalInterpreterSource.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ForwardDeclPrinter.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\IncrementalExecutor.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\IncrementalJIT.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\IncrementalParser.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\Interpreter.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\InterpreterCallbacks.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\InvocationOptions.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\LookupHelper.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\NullDerefProtectionTransformer.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\RequiredSymbols.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\Transaction.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\TransactionUnloader.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ValueExtractionSynthesizer.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\Value.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ValuePrinter.obj
  D:\code\cling\build\tools\cling\lib\Interpreter\obj.clingInterpreter.dir\Debug\ValuePrinterSynthesizer.obj
  D:\code\cling\build\tools\cling\lib\MetaProcessor\obj.clingMetaProcessor.dir\Debug\Display.obj
  D:\code\cling\build\tools\cling\lib\MetaProcessor\obj.clingMetaProcessor.dir\Debug\InputValidator.obj
  D:\code\cling\build\tools\cling\lib\MetaProcessor\obj.clingMetaProcessor.dir\Debug\MetaLexer.obj
  D:\code\cling\build\tools\cling\lib\MetaProcessor\obj.clingMetaProcessor.dir\Debug\MetaParser.obj
  D:\code\cling\build\tools\cling\lib\MetaProcessor\obj.clingMetaProcessor.dir\Debug\MetaProcessor.obj
  D:\code\cling\build\tools\cling\lib\MetaProcessor\obj.clingMetaProcessor.dir\Debug\MetaSema.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\AST.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\Diagnostics.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\ParserStateRAII.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\Output.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\Paths.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\PlatformMac.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\PlatformPosix.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\PlatformWin.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\SourceNormalization.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\UTF8.obj
  D:\code\cling\build\tools\cling\lib\Utils\obj.clingUtils.dir\Debug\Validation.obj
     Creating library D:/code/cling/build/Debug/lib/cling.lib and object D:/code/cling/build/Debug/lib/cling.exp
cling.exp : error LNK2001: unresolved external symbol "public: virtual __cdecl llvm::raw_ostream::~raw_ostream(void)" (??1raw_ostream@llvm@@UEAA@XZ) [D
:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: virtual __cdecl llvm::raw_string_ostream::~raw_string_ostream(void)" (??1raw_string_ostr
eam@llvm@@UEAA@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) [D:\code\cling\build\tools\cling
\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *)" (??3@YAXPEAX@Z) [D:\code\cling\build\tools\cling\tools\dri
ver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: class llvm::raw_ostream & __cdecl llvm::raw_ostream::operator<<(void const *)" (??6raw_o
stream@llvm@@QEAAAEAV01@PEBX@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "void * __cdecl operator new[](unsigned __int64)" (??_U@YAPEAX_K@Z) [D:\code\cling\build\tools\cl
ing\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "void __cdecl operator delete[](void *)" (??_V@YAXPEAX@Z) [D:\code\cling\build\tools\cling\tools\
driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "void __cdecl std::_Facet_Register(class std::_Facet_base *)" (?_Facet_Register@std@@YAXPEAV_Face
t_base@1@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: static class clang::Decl * __cdecl clang::Decl::castFromDeclContext(class clang::DeclCon
text const *)" (?castFromDeclContext@Decl@clang@@SAPEAV12@PEBVDeclContext@2@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: static class clang::DeclContext * __cdecl clang::Decl::castToDeclContext(class clang::De
cl const *)" (?castToDeclContext@Decl@clang@@SAPEAVDeclContext@2@PEBV12@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: static bool __cdecl clang::DeclContext::classof(class clang::Decl const *)" (?classof@De
clContext@clang@@SA_NPEBVDecl@2@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: class clang::DeclContext::decl_iterator __cdecl clang::DeclContext::decls_begin(void)con
st " (?decls_begin@DeclContext@clang@@QEBA?AVdecl_iterator@12@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "class llvm::raw_ostream & __cdecl llvm::errs(void)" (?errs@llvm@@YAAEAVraw_ostream@1@XZ) [D:\cod
e\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: class clang::DeclContext::specific_decl_iterator<class clang::FieldDecl> __cdecl clang::
RecordDecl::field_begin(void)const " (?field_begin@RecordDecl@clang@@QEBA?AV?$specific_decl_iterator@VFieldDecl@clang@@@DeclContext@2@XZ) [D:\code\clin
g\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "private: void __cdecl llvm::raw_ostream::flush_nonempty(void)" (?flush_nonempty@raw_ostream@llvm
@@AEAAXXZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: class clang::ASTContext & __cdecl clang::Decl::getASTContext(void)const " (?getASTContex
t@Decl@clang@@QEBAAEAVASTContext@2@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<c
har> > __cdecl clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers)" (?getAsString@QualType@clang@@SA?AV?$basic_string@DU?$c
har_traits@D@std@@V?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: static void __cdecl clang::QualType::getAsStringInternal(class clang::Type const *,class
 clang::Qualifiers,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,struct clang::PrintingPolicy const &)" (?g
etAsStringInternal@QualType@clang@@SAXPEBVType@2@VQualifiers@2@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBUPrintingPolicy@2@@Z
) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >
__cdecl clang::NamedDecl::getQualifiedNameAsString(void)const " (?getQualifiedNameAsString@NamedDecl@clang@@QEBA?AV?$basic_string@DU?$char_traits@D@std
@@V?$allocator@D@2@@std@@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "protected: void __cdecl llvm::SmallVectorBase::grow_pod(void *,unsigned __int64,unsigned __int64
)" (?grow_pod@SmallVectorBase@llvm@@IEAAXPEAX_K1@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_ostream::handle(void)" (?handle@raw_ostream@llvm@@EEAAXX
Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "private: struct std::pair<void const * const *,bool> __cdecl llvm::SmallPtrSetImplBase::insert_i
mp_big(void const *)" (?insert_imp_big@SmallPtrSetImplBase@llvm@@AEAA?AU?$pair@PEBQEBX_N@std@@PEBX@Z) [D:\code\cling\build\tools\cling\tools\driver\cli
ng.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "char const * const cling::valuePrinterInternal::kEmptyCollection" (?kEmptyCollection@valuePrinte
rInternal@cling@@3QEBDEB) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "protected: virtual unsigned __int64 __cdecl llvm::raw_ostream::preferred_buffer_size(void)const
" (?preferred_buffer_size@raw_ostream@llvm@@MEBA_KXZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: void __cdecl clang::Decl::print(class llvm::raw_ostream &,unsigned int,bool)const " (?pr
int@Decl@clang@@QEBAXAEAVraw_ostream@llvm@@I_N@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: class llvm::raw_ostream & __cdecl llvm::raw_ostream::write(unsigned char)" (?write@raw_o
stream@llvm@@QEAAAEAV12@E@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "public: class llvm::raw_ostream & __cdecl llvm::raw_ostream::write(char const *,unsigned __int64
)" (?write@raw_ostream@llvm@@QEAAAEAV12@PEBD_K@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_string_ostream::write_impl(char const *,unsigned __int64
)" (?write_impl@raw_string_ostream@llvm@@EEAAXPEBD_K@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
D:\code\cling\build\Debug\bin\cling.exe : fatal error LNK1120: 28 unresolved externals [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
Done Building Project "D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj" (default targets) -- FAILED.

......
"D:\code\cling\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj" (default target) (240) ->
(Link target) ->
  cling.exp : error LNK2001: unresolved external symbol "public: virtual __cdecl llvm::raw_ostream::~raw_ostream(void)" (??1raw_ostream@llvm@@UEAA@XZ)
[D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: virtual __cdecl llvm::raw_string_ostream::~raw_string_ostream(void)" (??1raw_string_os
tream@llvm@@UEAA@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) [D:\code\cling\build\tools\cli
ng\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *)" (??3@YAXPEAX@Z) [D:\code\cling\build\tools\cling\tools\d
river\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: class llvm::raw_ostream & __cdecl llvm::raw_ostream::operator<<(void const *)" (??6raw
_ostream@llvm@@QEAAAEAV01@PEBX@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "void * __cdecl operator new[](unsigned __int64)" (??_U@YAPEAX_K@Z) [D:\code\cling\build\tools\
cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "void __cdecl operator delete[](void *)" (??_V@YAXPEAX@Z) [D:\code\cling\build\tools\cling\tool
s\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "void __cdecl std::_Facet_Register(class std::_Facet_base *)" (?_Facet_Register@std@@YAXPEAV_Fa
cet_base@1@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: static class clang::Decl * __cdecl clang::Decl::castFromDeclContext(class clang::DeclC
ontext const *)" (?castFromDeclContext@Decl@clang@@SAPEAV12@PEBVDeclContext@2@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: static class clang::DeclContext * __cdecl clang::Decl::castToDeclContext(class clang::
Decl const *)" (?castToDeclContext@Decl@clang@@SAPEAVDeclContext@2@PEBV12@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: static bool __cdecl clang::DeclContext::classof(class clang::Decl const *)" (?classof@
DeclContext@clang@@SA_NPEBVDecl@2@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: class clang::DeclContext::decl_iterator __cdecl clang::DeclContext::decls_begin(void)c
onst " (?decls_begin@DeclContext@clang@@QEBA?AVdecl_iterator@12@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "class llvm::raw_ostream & __cdecl llvm::errs(void)" (?errs@llvm@@YAAEAVraw_ostream@1@XZ) [D:\c
ode\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: class clang::DeclContext::specific_decl_iterator<class clang::FieldDecl> __cdecl clang
::RecordDecl::field_begin(void)const " (?field_begin@RecordDecl@clang@@QEBA?AV?$specific_decl_iterator@VFieldDecl@clang@@@DeclContext@2@XZ) [D:\code\cl
ing\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "private: void __cdecl llvm::raw_ostream::flush_nonempty(void)" (?flush_nonempty@raw_ostream@ll
vm@@AEAAXXZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: class clang::ASTContext & __cdecl clang::Decl::getASTContext(void)const " (?getASTCont
ext@Decl@clang@@QEBAAEAVASTContext@2@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator
<char> > __cdecl clang::QualType::getAsString(class clang::Type const *,class clang::Qualifiers)" (?getAsString@QualType@clang@@SA?AV?$basic_string@DU?
$char_traits@D@std@@V?$allocator@D@2@@std@@PEBVType@2@VQualifiers@2@@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: static void __cdecl clang::QualType::getAsStringInternal(class clang::Type const *,cla
ss clang::Qualifiers,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,struct clang::PrintingPolicy const &)" (
?getAsStringInternal@QualType@clang@@SAXPEBVType@2@VQualifiers@2@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBUPrintingPolicy@2@
@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>
> __cdecl clang::NamedDecl::getQualifiedNameAsString(void)const " (?getQualifiedNameAsString@NamedDecl@clang@@QEBA?AV?$basic_string@DU?$char_traits@D@s
td@@V?$allocator@D@2@@std@@XZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "protected: void __cdecl llvm::SmallVectorBase::grow_pod(void *,unsigned __int64,unsigned __int
64)" (?grow_pod@SmallVectorBase@llvm@@IEAAXPEAX_K1@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_ostream::handle(void)" (?handle@raw_ostream@llvm@@EEAA
XXZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "private: struct std::pair<void const * const *,bool> __cdecl llvm::SmallPtrSetImplBase::insert
_imp_big(void const *)" (?insert_imp_big@SmallPtrSetImplBase@llvm@@AEAA?AU?$pair@PEBQEBX_N@std@@PEBX@Z) [D:\code\cling\build\tools\cling\tools\driver\c
ling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "char const * const cling::valuePrinterInternal::kEmptyCollection" (?kEmptyCollection@valuePrin
terInternal@cling@@3QEBDEB) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "protected: virtual unsigned __int64 __cdecl llvm::raw_ostream::preferred_buffer_size(void)cons
t " (?preferred_buffer_size@raw_ostream@llvm@@MEBA_KXZ) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: void __cdecl clang::Decl::print(class llvm::raw_ostream &,unsigned int,bool)const " (?
print@Decl@clang@@QEBAXAEAVraw_ostream@llvm@@I_N@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: class llvm::raw_ostream & __cdecl llvm::raw_ostream::write(unsigned char)" (?write@raw
_ostream@llvm@@QEAAAEAV12@E@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "public: class llvm::raw_ostream & __cdecl llvm::raw_ostream::write(char const *,unsigned __int
64)" (?write@raw_ostream@llvm@@QEAAAEAV12@PEBD_K@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  cling.exp : error LNK2001: unresolved external symbol "private: virtual void __cdecl llvm::raw_string_ostream::write_impl(char const *,unsigned __int
64)" (?write_impl@raw_string_ostream@llvm@@EEAAXPEBD_K@Z) [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]
  D:\code\cling\build\Debug\bin\cling.exe : fatal error LNK1120: 28 unresolved externals [D:\code\cling\build\tools\cling\tools\driver\cling.vcxproj]

    101 Warning(s)
    29 Error(s)

Time Elapsed 01:31:00.12
liudonghua123 commented 6 years ago

When I run cmake -DCMAKE_INSTALL_PREFIX=../release -DCMAKE_BUILD_TYPE=Release ..\src I saw the warnings -- Warning: Did not find file Compiler/MSVC-ASM

However, even I set visual studio environments via "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" or "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat". The same warning still exist.

The full log is

D:\code\cling\build>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.5.2
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'

C:\Users\Liu.D.H\source>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.12.25831 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

C:\Users\Liu.D.H\source>
C:\Users\Liu.D.H\source>d:

D:\code\cling\build>cmake -DCMAKE_INSTALL_PREFIX=../release -DCMAKE_BUILD_TYPE=Release ..\src
CMake Warning at CMakeLists.txt:48 (message):
  Visual Studio generators use the x86 host compiler by default, even for
  64-bit targets.  This can result in linker instability and out of memory
  errors.  To use the 64-bit host compiler, pass -Thost=x64 on the CMake
  command line.

-- Warning: Did not find file Compiler/MSVC-ASM
-- Could NOT find Backtrace (missing: Backtrace_LIBRARY Backtrace_INCLUDE_DIR)
-- Native target architecture is X86
-- Threads enabled.
-- Doxygen disabled.
-- Go bindings disabled.
-- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH)
-- OCaml bindings disabled.
-- LLVM host triple: x86_64-pc-win32
-- LLVM default target triple: x86_64-pc-win32
-- Using Debug VC++ CRT: MDd
-- Using Release VC++ CRT: MD
-- Using MinSizeRel VC++ CRT: MD
-- Using RelWithDebInfo VC++ CRT: MD
-- Using Release VC++ CRT: MD
-- Constructing LLVMBuild project information
-- LLVMHello ignored -- Loadable modules not supported on this platform.
-- Targeting AArch64
-- Targeting AMDGPU
-- Targeting ARM
-- Targeting BPF
-- Targeting Hexagon
-- Targeting Lanai
-- Targeting Mips
-- Targeting MSP430
-- Targeting NVPTX
-- Targeting PowerPC
-- Targeting Sparc
-- Targeting SystemZ
-- Targeting X86
-- Targeting XCore
-- Could NOT find Z3 (missing: Z3_LIBRARIES Z3_INCLUDE_DIR) (Required is at least version "4.5")
-- Clang version: 5.0.0
-- SampleAnalyzerPlugin ignored -- Loadable modules not supported on this platform.
-- PrintFunctionNames ignored -- Loadable modules not supported on this platform.
-- AnnotateFunctions ignored -- Loadable modules not supported on this platform.
-- BugpointPasses ignored -- Loadable modules not supported on this platform.
-- Cling version (from VERSION file): 0.6~dev
-- Configuring done
-- Generating done
-- Build files have been written to: D:/code/cling/build

D:\code\cling\build>
liudonghua123 commented 6 years ago

Now I can build it with VS 2017.

But still, run with some problems.

D:\code\cling\release\bin>cling

****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ int a[]={1,2,3}
IncrementalExecutor::executeFunction: symbol '??3@YAXPEAX_K@Z' unresolved while linking [cling interface function]!
You are probably missing the definition of void __cdecl operator delete(void * __ptr64,unsigned __int64)
Maybe you need to load the corresponding shared library?
ERROR in cling's callPrintValue(): cannot pass value!
input_line_6:1:79: warning: indirection of non-volatile null pointer will be deleted, not trap [-Wnull-dereference]
namespace { void* cling_printValue_Failure_Typename_check = (void*)(int(*)[3])*(void**)nullptr; }
                                                                              ^~~~~~~~~~~~~~~~
input_line_6:1:79: note: consider using __builtin_trap() or qualifying pointer with 'volatile'
Assertion failed: !canParseTypeName(*Interp, getTypeString(V)) && "printValue failed on a valid type name.", file d:\code\cling\src\tools\cling\lib\interpreter\valueprinter.cpp, line 623
Wrote crash dump file "C:\Users\LIUD~1.H\AppData\Local\Temp\cling.exe-d75b44.dmp"
#0 0x00007ff6f59c7e5c (D:\code\cling\release\bin\cling.exe+0x8a7e5c)
#1 0x00007ff916918201 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x68201)
#2 0x00007ff916919d89 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x69d89)
#3 0x00007ff91691f885 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6f885)
#4 0x00007ff91691f3d7 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6f3d7)
#5 0x00007ff91691d461 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6d461)
#6 0x00007ff91691fc6f (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6fc6f)
#7 0x00007ff6f59523a9 (D:\code\cling\release\bin\cling.exe+0x8323a9)
#8 0x00007ff6f5953afd (D:\code\cling\release\bin\cling.exe+0x833afd)
#9 0x00007ff6f59544c4 (D:\code\cling\release\bin\cling.exe+0x8344c4)
#10 0x00007ff6f594d221 (D:\code\cling\release\bin\cling.exe+0x82d221)
#11 0x00007ff6f594d48a (D:\code\cling\release\bin\cling.exe+0x82d48a)
#12 0x00007ff6f5874435 (D:\code\cling\release\bin\cling.exe+0x754435)
#13 0x00007ff6f587773c (D:\code\cling\release\bin\cling.exe+0x75773c)
#14 0x00007ff6f5989438 (D:\code\cling\release\bin\cling.exe+0x869438)
#15 0x00007ff6f5ac45e9 (D:\code\cling\release\bin\cling.exe+0x9a45e9)
#16 0x00007ff6f547fc9e (D:\code\cling\release\bin\cling.exe+0x35fc9e)
#17 0x00007ff6fd910524 (D:\code\cling\release\bin\cling.exe+0x87f0524)
#18 0x00007ff6fd910417 (D:\code\cling\release\bin\cling.exe+0x87f0417)
#19 0x00007ff6fd9102de (D:\code\cling\release\bin\cling.exe+0x87f02de)
#20 0x00007ff6fd9105b9 (D:\code\cling\release\bin\cling.exe+0x87f05b9)
#21 0x00007ff94c461fe4 (C:\WINDOWS\System32\KERNEL32.DLL+0x11fe4)
#22 0x00007ff94ca7efc1 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6efc1)

D:\code\cling\release\bin>
bellenot commented 6 years ago

As already said here, there is a PR waiting for approval, which fixes this issue.... And as already said, if you can't wait for the fix being pushed, you can add the missing symbol (??3@YAXPEAX_K@Z) in tools/driver/CMakeLists.txt, as you can see in this PR

liudonghua123 commented 6 years ago

@bellenot I modified tools/driver/CMakeLists.txt, and I am building. Later I will test again.

bellenot commented 6 years ago

FYI, everything is now fixed in the master (and no need to change the CLING_INCLUDE_TESTS flag anymore)

iammosespaulr commented 6 years ago

Awesome

joao-aguirre commented 6 years ago

I see that the issue is closed, but can someone help me here?

I'm trying to compile CLing on Windows 10, using Visual Studio 2017, following the procedure described by @ahmidou. I'm running it on a PowerShell and I'm configuring the environment variables using the vcvars64.bat.

After the cmake --build . command I have the following output, with 102 warning and 1 (just 1, so close) error (I've removed some of the lines with repeated warnings):

Build FAILED.

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj" (default target) (138) ->
"D:\aguirre\repository\cling\src\build\utils\unittest\gtest.vcxproj" (default target) (139) ->
(ClCompile target) ->
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1005): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1005): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1006): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1006): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1007): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1007): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1008): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1008): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1009): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\rep
ository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(600): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(605): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(610): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(600): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(615): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(605): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(620): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(610): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(625): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(615): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(620): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(632): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(625): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(639): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(632): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc)d:\aguirre\repository\
cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(646): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILEN
CE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repository\cling\src\build\utils\
unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(639): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(653): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc)c:\program files (x86)
\microsoft visual studio\2017\professional\vc\tools\msvc\14.14.26428\include\functional(2683): note: see declaration of 'std::tr1' (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:
\aguirre\repository\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(646): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc)d:\aguirre\repository\
cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(661): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILEN
CE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repository\cling\src\build\utils\
unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(653): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(661): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(878): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(878): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(882): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(882): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(875): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googlemock\src\gmock-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(875): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. (compiling source file D:\aguirre\repository\cling\src\utils\unittest\googletest\src\gtest-all.cc) [D:\aguirre\repositor
y\cling\src\build\utils\unittest\gtest.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj" (default target) (138) ->
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1005): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1006): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1007): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1008): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1009): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(600): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(605): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(610): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(615): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(620): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(625): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(632): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(639): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(646): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(653): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(661): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(878): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(882): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(875): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\lib\Testing\Support\LLVMTestingSupport.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\tools\cling\tools\driver\cling.vcxproj" (default target) (240) ->
"D:\aguirre\repository\cling\src\build\tools\cling\lib\Interpreter\clingInterpreter.vcxproj" (default target) (241) ->
"D:\aguirre\repository\cling\src\build\tools\cling\lib\Interpreter\obj.clingInterpreter.vcxproj" (default target) (242) ->
  d:\aguirre\repository\cling\src\tools\cling\lib\interpreter\clingpragmas.cpp(178): warning C4018: '>': signed/unsigned mismatch [D:\aguirre\repository\cling\src\build\tools\cling\lib\Interpreter\obj.clingInterpreter.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\tools\cling\tools\driver\cling.vcxproj" (default target) (240) ->
"D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj" (default target) (245) ->
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHs' with '/EHs-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  cl : Command line warning D9025: overriding '/EHc' with '/EHc-' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  d:\aguirre\repository\cling\src\tools\cling\lib\userinterface\textinput\streamreaderwin.cpp(212): warning C4477: 'printf' : format string '%s' requires an argument of type 'char *', but variadic argument 3 has type 'LPVOID' [D:\agu
irre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]
  d:\aguirre\repository\cling\src\tools\cling\lib\userinterface\textinput\terminaldisplaywin.cpp(121): warning C4838: conversion from 'size_t' to 'SHORT' requires a narrowing conversion [D:\aguirre\repository\cling\src\build\tools\cl
ing\lib\UserInterface\clingUserInterface.vcxproj]
  d:\aguirre\repository\cling\src\tools\cling\lib\userinterface\textinput\terminaldisplaywin.cpp(164): warning C4838: conversion from 'size_t' to 'SHORT' requires a narrowing conversion [D:\aguirre\repository\cling\src\build\tools\cl
ing\lib\UserInterface\clingUserInterface.vcxproj]
  d:\aguirre\repository\cling\src\tools\cling\lib\userinterface\textinput\terminaldisplaywin.cpp(224): warning C4477: 'printf' : format string '%s' requires an argument of type 'char *', but variadic argument 3 has type 'LPVOID' [D:\
aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\tools\cling\tools\driver\cling.vcxproj" (default target) (240) ->
"D:\aguirre\repository\cling\src\build\tools\cling\lib\Utils\clingUtils.vcxproj" (default target) (246) ->
"D:\aguirre\repository\cling\src\build\tools\cling\lib\Utils\obj.clingUtils.vcxproj" (default target) (247) ->
(Lib target) ->
  PlatformPosix.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library [D:\aguirre\repository\cling\src\build\tools\cli
ng\lib\Utils\obj.clingUtils.vcxproj]
  PlatformMac.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library [D:\aguirre\repository\cling\src\build\tools\cling
\lib\Utils\obj.clingUtils.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\tools\cling\tools\driver\cling.vcxproj" (default target) (240) ->
"D:\aguirre\repository\cling\src\build\tools\cling\lib\Utils\clingUtils.vcxproj" (default target) (246) ->
  PlatformPosix.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library [D:\aguirre\repository\cling\src\build\tools\cli
ng\lib\Utils\clingUtils.vcxproj]
  PlatformMac.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library [D:\aguirre\repository\cling\src\build\tools\cling
\lib\Utils\clingUtils.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\tools\cling\tools\demo\cling-demo.vcxproj" (default target) (248) ->
(ClCompile target) ->
  c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.14.26428\include\xlocale(315): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [D:\aguirre\repository\
cling\src\build\tools\cling\tools\demo\cling-demo.vcxproj]
  d:\aguirre\repository\cling\src\tools\cling\tools\demo\cling-demo.cpp(21): warning C4305: 'initializing': truncation from 'double' to 'float' [D:\aguirre\repository\cling\src\build\tools\cling\tools\demo\cling-demo.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj" (default target) (251) ->
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1005): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1006): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1007): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1008): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\internal\gtest-port.h(1009): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be
REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(600): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(605): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(610): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(615): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(620): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(625): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(632): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(639): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(646): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(653): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(661): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(878): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(882): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]
  d:\aguirre\repository\cling\src\utils\unittest\googletest\include\gtest\gtest-printers.h(875): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVE
D. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. [D:\aguirre\repository\cling\src\build\utils\unittest\UnitTestMain\gtest_main.vcxproj]

"D:\aguirre\repository\cling\src\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\src\build\tools\cling\tools\driver\cling.vcxproj" (default target) (240) ->
"D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj" (default target) (245) ->
(ClCompile target) ->
  d:\aguirre\repository\cling\src\tools\cling\lib\userinterface\textinput\terminaldisplaywin.cpp(34): error C2664: 'HANDLE CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE)': cannot convert argument 1 from 'co
nst char [8]' to 'LPCWSTR' [D:\aguirre\repository\cling\src\build\tools\cling\lib\UserInterface\clingUserInterface.vcxproj]

    102 Warning(s)
    1 Error(s)

Can anyone give me a hint on how to solve this compilation error?

Thanks in advance.

joao-aguirre commented 6 years ago

@bellenot I've seen you commit, I've applied the changes here and it compiled without errors. It seems to be working. I say it seems because I had the same issue as this one (#244). Thanks for your attention here.

bellenot commented 6 years ago

@aguirreeng FYI, this is now also in cling master (commit #d5cfcad)

joao-aguirre commented 5 years ago

Hi everyone!

Sorry to bother you again, but I am back to this, trying to build Cling on Windows, following the procedure used by @ahmidou.

When I try to build the project I get the following errors:

"D:\aguirre\repository\cling\build\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj" (default target) (249) ->
(Link target) ->
  DemoPlugin.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl clang::ASTConsumer::HandleTopLevelDecl(class clang::DeclGroupRef)" (?HandleTopLevelDecl@ASTConsumer@clang@@UEAA_NVDeclGroupRef@2@@Z) [D:\aguirre\repository\cling\build\tools\cling
\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl clang::ASTConsumer::HandleInterestingDecl(class clang::DeclGroupRef)" (?HandleInterestingDecl@ASTConsumer@clang@@UEAAXVDeclGroupRef@2@@Z) [D:\aguirre\repository\cling\build\tools\
cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl clang::ASTConsumer::HandleTopLevelDeclInObjCContainer(class clang::DeclGroupRef)" (?HandleTopLevelDeclInObjCContainer@ASTConsumer@clang@@UEAAXVDeclGroupRef@2@@Z) [D:\aguirre\repos
itory\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl clang::ASTConsumer::HandleImplicitImportDecl(class clang::ImportDecl *)" (?HandleImplicitImportDecl@ASTConsumer@clang@@UEAAXPEAVImportDecl@2@@Z) [D:\aguirre\repository\cling\build
\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "private: void __cdecl clang::APValue::DestroyDataAndMakeUninit(void)" (?DestroyDataAndMakeUninit@APValue@clang@@AEAAXXZ) referenced in function "private: void __cdecl clang::APValue::MakeUninit(void)" (?MakeU
ninit@APValue@clang@@AEAAXXZ) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "public: class llvm::raw_ostream & __cdecl llvm::raw_ostream::write(char const *,unsigned __int64)" (?write@raw_ostream@llvm@@QEAAAEAV12@PEBD_K@Z) referenced in function "public: class llvm::raw_ostream & __cd
ecl llvm::raw_ostream::operator<<(class llvm::StringRef)" (??6raw_ostream@llvm@@QEAAAEAV01@VStringRef@1@@Z) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "class llvm::raw_ostream & __cdecl llvm::outs(void)" (?outs@llvm@@YAAEAVraw_ostream@1@XZ) referenced in function "protected: virtual class std::unique_ptr<class clang::ASTConsumer,struct std::default_delete<cl
ass clang::ASTConsumer> > __cdecl Action<struct PluginConsumer>::CreateASTConsumer(class clang::CompilerInstance &,class llvm::StringRef)" (?CreateASTConsumer@?$Action@UPluginConsumer@@@@MEAA?AV?$unique_ptr@VASTConsumer@clang@@U?$default_delete@VASTConsumer@clang@@@std@
@@std@@AEAVCompilerInstance@clang@@VStringRef@llvm@@@Z) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl clang::PragmaHandler::~PragmaHandler(void)" (??1PragmaHandler@clang@@UEAA@XZ) referenced in function "public: virtual __cdecl DemoPluginPragmaHandler::~DemoPluginPragmaHandler(void)" (
??1DemoPluginPragmaHandler@@UEAA@XZ) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2001: unresolved external symbol "protected: virtual bool __cdecl clang::FrontendAction::shouldEraseOutputFiles(void)" (?shouldEraseOutputFiles@FrontendAction@clang@@MEAA_NXZ) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\examp
le\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "public: __cdecl clang::FrontendAction::FrontendAction(void)" (??0FrontendAction@clang@@QEAA@XZ) referenced in function "public: __cdecl clang::ASTFrontendAction::ASTFrontendAction(void)" (??0ASTFrontendAction
@clang@@QEAA@XZ) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl clang::FrontendAction::~FrontendAction(void)" (??1FrontendAction@clang@@UEAA@XZ) referenced in function "public: virtual __cdecl clang::ASTFrontendAction::~ASTFrontendAction(void)" (??
1ASTFrontendAction@clang@@UEAA@XZ) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl clang::ASTFrontendAction::ExecuteAction(void)" (?ExecuteAction@ASTFrontendAction@clang@@MEAAXXZ) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoP
lugin.vcxproj]
  DemoPlugin.obj : error LNK2001: unresolved external symbol "private: virtual void __cdecl clang::PluginASTAction::anchor(void)" (?anchor@PluginASTAction@clang@@EEAAXXZ) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "public: static void __cdecl llvm::Registry<class clang::PluginASTAction>::add_node(class llvm::Registry<class clang::PluginASTAction>::node *)" (?add_node@?$Registry@VPluginASTAction@clang@@@llvm@@SAXPEAVnode
@12@@Z) referenced in function "public: __cdecl llvm::Registry<class clang::PluginASTAction>::Add<class Action<struct PluginConsumer> >::Add<class Action<struct PluginConsumer> >(class llvm::StringRef,class llvm::StringRef)" (??0?$Add@V?$Action@UPluginConsumer@@@@@?$Reg
istry@VPluginASTAction@clang@@@llvm@@QEAA@VStringRef@2@0@Z) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  DemoPlugin.obj : error LNK2019: unresolved external symbol "public: static void __cdecl llvm::Registry<class clang::PragmaHandler>::add_node(class llvm::Registry<class clang::PragmaHandler>::node *)" (?add_node@?$Registry@VPragmaHandler@clang@@@llvm@@SAXPEAVnode@12@@Z
) referenced in function "public: __cdecl llvm::Registry<class clang::PragmaHandler>::Add<class DemoPluginPragmaHandler>::Add<class DemoPluginPragmaHandler>(class llvm::StringRef,class llvm::StringRef)" (??0?$Add@VDemoPluginPragmaHandler@@@?$Registry@VPragmaHandler@clan
g@@@llvm@@QEAA@VStringRef@2@0@Z) [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]
  D:\aguirre\repository\cling\build\Debug\bin\clingDemoPlugin.dll : fatal error LNK1120: 15 unresolved externals [D:\aguirre\repository\cling\build\tools\cling\tools\plugins\example\clingDemoPlugin.vcxproj]

Any tips on this?

uncle-betty commented 4 years ago

FWIW, I just managed to compile cling.exe from today's master with the latest update of Visual Studio 2017, version 15.9.21, on Windows 10.

I basically followed the instructions at the top of this thread. The things that were special about my situation:

As some of the others above, I also got unresolved external symbols in cling.exe as well as the demo and the plugins. As I was only interested in cling.exe, I simply excluded the demo and the plugins from the build.

For cling.exe, it seems that the link phase depends on version-specific behavior of the Visual Studio C++ compiler. It passes a few /EXPORT:... options to the linker, which turn out to be exports for unknown (mangled C++) symbols with my version of the VS C++ compiler. I guess that other versions of the VS C++ compiler work.

All in all, the following are the modifications to the cling repository that I made to get cling.exe to build. The changes remove the demo and plugins subdirectories and skip adding the /EXPORT:... options to the LINK_FLAGS variable.

diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 67881875..55625bf1 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -11,7 +11,7 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../lib/UserInterface/textinput
   add_subdirectory(driver)
   add_subdirectory(Jupyter)
   add_subdirectory(libcling)
-  add_subdirectory(demo)
+  # add_subdirectory(demo)
 endif()

-add_subdirectory(plugins)
+# add_subdirectory(plugins)
diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt
index 51309338..dc00cba4 100644
--- a/tools/driver/CMakeLists.txt
+++ b/tools/driver/CMakeLists.txt
@@ -108,7 +108,7 @@ if(MSVC)
     set(cling_link_str "${cling_link_str} /EXPORT:${sym}")
   endforeach(sym ${cling_exports})

-  set_property(TARGET cling APPEND_STRING PROPERTY LINK_FLAGS ${cling_link_str})
+  # set_property(TARGET cling APPEND_STRING PROPERTY LINK_FLAGS ${cling_link_str})

 endif(MSVC)

I hope this helps other people who - like me - came here by way of a search engine when researching how to build cling on Windows.