[LLVMdev] LLVM 3.6: problems building on Windows using MSVC 2013
Zachary Turner
zturner at google.com
Mon Mar 9 15:15:40 PDT 2015
When you say you build it "as part of your project" what does that mean
exactly? Are you using CMake + ninja? MSBuild? Something else?
On Mon, Mar 9, 2015 at 1:31 PM Alan Garny <agarny at hellix.com> wrote:
> Hi,
>
>
>
> 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).
>
>
>
> 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.
>
>
>
> 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:
>
>
>
> ---------------------------------------
>
> 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
>
> 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
>
> with
>
> [
>
> _Ty=clang::driver::Job
>
> ]
>
> 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 ='
>
> with
>
> [
>
> _Ty=clang::driver::Job
>
> ]
>
> 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
>
> with
>
> [
>
>
> _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
> *
>
> , _InIt=const
> std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
> *
>
> ]
>
> 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
>
> with
>
> [
>
>
> _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
> *
>
> , _Iter=const
> std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
> *
>
> , _Ty=clang::driver::Job
>
> , _InIt=const
> std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
> *
>
> ]
>
> ..\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
>
> with
>
> [
>
>
> _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
> *
>
> , _Ty=clang::driver::Job
>
> , _InIt=const
> std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
> *
>
> ]
>
> ..\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> &)'
>
> with
>
> [
>
>
> T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
>
> ]
>
> ..\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
>
> with
>
> [
>
>
> T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
>
> ]
>
> ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(890)
> : see reference to class template instantiation 'llvm::SmallVectorImpl<T>'
> being compiled
>
> with
>
> [
>
>
> T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>>
>
> ]
>
>
> ..\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
>
> with
>
> [
>
> _Ty=clang::driver::Job
>
> ]
>
> ---------------------------------------
>
>
>
> 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?...
>
>
>
> Cheers, Alan.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150309/df927ea6/attachment.html>
More information about the llvm-dev
mailing list