<div dir="ltr">When you say you build it "as part of your project" what does that mean exactly?  Are you using CMake + ninja?  MSBuild?  Something else?<br></div><br><div class="gmail_quote">On Mon, Mar 9, 2015 at 1:31 PM Alan Garny <<a href="mailto:agarny@hellix.com">agarny@hellix.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-GB" link="blue" vlink="purple"><div><p class="MsoNormal">Hi,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I have been using LLVM+Clang in my project for some time and it has been working just fine up to now (I am currently using version 3.5.1).<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">However, with version 3.6 having just been released, I thought I would give it a try and update my code to use MCJIT rather than the now discontinued JIT. Well, this proved to be a relatively smooth process, and everything is now working fine on Linux and OS X. However, on Windows, I am having problems building LLVM+Clang. Actually, Clang itself, it would seem.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I guess it’s worth mentioning that I don’t build LLVM+Clang the ‘normal’ way. Instead, LLVM+Clang is part of my project repository and I build it as part of my project. Now, as mentioned above, I am having problems building version 3.6 on Windows, this using MSVC 2013. I am basically getting things like:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">---------------------------------------<u></u><u></u></p><p class="MsoNormal">FAILED: C:\PROGRA~2\MICROS~2.0\VC\bin\X86_AM~1\cl.exe   /nologo /TP /DWIN32 /D_WINDOWS  /GR /EHsc /DNDEBUG /MD /O2 /Ob2 /wd4267 /wd4146 /wd4180 /wd4244 /wd4258 /wd4267 /wd4291 /wd4345 /wd4351 /wd4355 /wd4456 /wd4457 /wd4458 /wd4459 /wd4503 /wd4624 /wd4722 /wd4800 /w14062 /we4238 -Isrc\plugins\thirdParty\LLVM -I..\src\plugins\thirdParty\LLVM -I..\src\misc -I..\src\plugins -I..\src\plugins\miscellaneous\Core\src -I..\src\3rdparty\QtSingleApplication\src -I..\src\plugins\thirdParty\LLVM\include -I..\src\plugins\thirdParty\LLVM\lib\Target\X86 -I..\src\plugins\thirdParty\LLVM\src -I..\src\plugins\thirdParty\LLVM\tools\clang\include -IC:\Qt\5.4\msvc2013_64\include -IC:\Qt\5.4\msvc2013_64\include\QtCore -IC:\Qt\5.4\msvc2013_64\mkspecs\win32-msvc2013 /showIncludes -DLLVMPlugin_EXPORTS -DLLVM_PLUGIN -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS /Fosrc\plugins\thirdParty\LLVM\CMakeFiles\LLVMPlugin.dir\tools\clang\lib\Driver\Compilation.cpp.obj /Fdsrc\plugins\thirdParty\LLVM\CMakeFiles\LLVMPlugin.dir\ /FS -c ..\src\plugins\thirdParty\LLVM\tools\clang\lib\Driver\Compilation.cpp<u></u><u></u></p><p class="MsoNormal">C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xutility(2045) : error C2280: 'std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>> &std::unique_ptr<_Ty,std::default_delete<_Ty>>::operator =(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)' : attempting to reference a deleted function<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            _Ty=clang::driver::Job<u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\memory(1487) : see declaration of 'std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>::operator ='<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            _Ty=clang::driver::Job<u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xutility(2066) : see reference to function template instantiation '_OutIt std::_Copy_impl<_InIt,_OutIt>(_InIt,_InIt,_OutIt,std::_Nonscalar_ptr_iterator_tag)' being compiled<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<u></u><u></u></p><p class="MsoNormal">,            _InIt=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xutility(2077) : see reference to function template instantiation '_OutIt std::_Copy_impl<_Iter,std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>>(_InIt,_InIt,_OutIt)' being compiled<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<u></u><u></u></p><p class="MsoNormal">,            _Iter=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<u></u><u></u></p><p class="MsoNormal">,            _Ty=clang::driver::Job<u></u><u></u></p><p class="MsoNormal">,            _InIt=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(773) : see reference to function template instantiation '_OutIt std::copy<const std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>,std::unique_ptr<_Ty,std::default_delete<_Ty>>*>(_InIt,_InIt,_OutIt)' being compiled<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<u></u><u></u></p><p class="MsoNormal">,            _Ty=clang::driver::Job<u></u><u></u></p><p class="MsoNormal">,            _InIt=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(761) : while compiling class template member function 'llvm::SmallVectorImpl<T> &llvm::SmallVectorImpl<T>::operator =(const llvm::SmallVectorImpl<T> &)'<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>><u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(915) : see reference to function template instantiation 'llvm::SmallVectorImpl<T> &llvm::SmallVectorImpl<T>::operator =(const llvm::SmallVectorImpl<T> &)' being compiled<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>><u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(890) : see reference to class template instantiation 'llvm::SmallVectorImpl<T>' being compiled<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>><u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">        ..\src\plugins\thirdParty\LLVM\tools\clang\include\clang/Driver/Job.h(169) : see reference to class template instantiation 'llvm::SmallVector<std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>,4>' being compiled<u></u><u></u></p><p class="MsoNormal">        with<u></u><u></u></p><p class="MsoNormal">        [<u></u><u></u></p><p class="MsoNormal">            _Ty=clang::driver::Job<u></u><u></u></p><p class="MsoNormal">        ]<u></u><u></u></p><p class="MsoNormal">---------------------------------------<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Now, the error message seems to make sense to me (after having had a quick look at the code), but I am clearly missing something since not only does it all work fine on Linux and OS X, but I was (obviously) also able to build LLVM+Clang the ‘normal’ on Windows. So, what am I missing exactly?...<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Cheers, Alan.<u></u><u></u></p></div></div>______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvmdev</a><br>
</blockquote></div>