[llvm-dev] LLVM 3.7.0 build errors on Windows

Russell Wallace via llvm-dev llvm-dev at lists.llvm.org
Thu Sep 3 01:28:03 PDT 2015


I have the same setup as you, and it's working fine, but I think that's
because I have #include <windows.h> after the llvm headers. I tried moving
it before them just now and I get the same error messages as you. I also
took a look at C:\llvm\tools\clang\lib\Driver\MSVCToolChain.cpp and it
likewise puts the windows header after the llvm headers. Can you move it to
after?

On Thu, Sep 3, 2015 at 2:02 AM, Ben Swift via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> I'm working on a cross-platform project which links (statically) against
> LLVM, which I use for MCJIT purposes.
>
> Everything was fine on 3.4.2. I'm just experimenting with upgrading to
> 3.7.0, and everything works fine on OSX & Linux once I changed my
> project to reflect the API updates.
>
> On Windows, I get a bunch of compile errors - hundreds of them, but
> variations on a couple of different themes, such as
>
> Error   C3805   '(': unexpected token, expected either '}' or a ','
>   llvm\Support\COFF.h  168
> Error   C3646   'Checksum': unknown override specifier
> llvm\Object\COFF.h              50
> Error   C4430   missing type specifier - int assumed. Note: C++ does not
> support default-int    llvm\Object\COFF.h      52
>
> All the errors are reported in LLVM header files, mostly
> llvm/Support/COFF.h and llvm/Object/COFF.h
>
> I'm using Visual Studio Community 2015, the CXX compiler identification
> is MSVC 19.0.23026.0
>
> My CPP includes are:
>
> WIN32
> _WINDOWS
> NDEBUG
> _CRT_SECURE_NO_DEPRECATE
> _CRT_SECURE_NO_WARNINGS
> _CRT_NONSTDC_NO_DEPRECATE
> _CRT_NONSTDC_NO_WARNINGS
> _SCL_SECURE_NO_DEPRECATE
> _SCL_SECURE_NO_WARNINGS
> __STDC_CONSTANT_MACROS
> __STDC_FORMAT_MACROS
> __STDC_LIMIT_MACROS
> _GNU_SOURCE
> %(PreprocessorDefinitions)
>
> Now, a couple of things are suspicious:
>
> - in googling around it seems like there are some problems with
> including Windows.h (which I have to include for other reasons) as well
> as the LLVM headers, at least with previous versions of LLVM.
> - on OSX, I did have to add a -std=c++11 flag before it would compile.
> But I thought I didn't need/couldn't do that on Windows?
>
> Does anyone have any idea what might be the problem, or ideas for
> solutions/workarounds?
>
> Cheers
> Ben
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150903/3b9828ec/attachment.html>


More information about the llvm-dev mailing list