Sorry for late reply. not sure if 2.2.4 requires it. I think it does.
Yes I encountered the same issue with missing wrl. you can find it online on github.
I downloaded it from here:
https://sourceforge.net/p/mingw-w64/min ... clude/wrl/
then copied wrl into contrib/x86_64-w64-mingw32/include folder.
in your case it should be contrib/i686-w64-mingw32/include
Hi theguy.
First of all, thanks very very much for your attention and advice.
The build is done.
For others who have the same problem, I leave more mention(in my build process).
In conclusion, in the same issue with "wrl/client.h",need 6 files.
1. v5.x/mingw-w64-headers/include/wrl/client.h
2. v5.x/mingw-w64-headers/include/wrl/internal.h
3. v5.x/mingw-w64-headers/include/roapi.h
4. v5.x/mingw-w64-headers/include/dwrite.h
5. v5.x/mingw-w64-headers/include/dwrite_1.h
6. v5.x/mingw-w64-headers/include/dwrite_2.h
===================================== begin my process =====================================
* The Italic is error messages while executing 'make'.
1. Download the "v5.x/mingw-w64-headers/include/wrl/client.h" and copy to contrib/i686-w64-mingw32/include/wrl/. And 'make'.
fatal error: wrl/internal.h: Nor such file or directory
2. Download the "v5.x/mingw-w64-headers/include/wrl/internal.h" and copy to contrib/i686-w64-mingw32/include/wrl/. And 'make'.
/usr/share/mingw-w64/include/roapi.h:60:33: error: ‘Windows::Foundation::Initalize’ declared as an ‘inline’ variable
__inline HRESULT Initalize (RO_INIT_TYPE it
^
/usr/share/mingw-w64/include/roapi.h:60:33: error: ‘RO_INIT_TYPE’ was not declared in this scope
/usr/share/mingw-w64/include/roapi.h:64:7: error: expected ‘,’ or ‘;’ before ‘{’ token
) { return RoInitialize (it); }
^
/usr/share/mingw-w64/include/roapi.h: In function ‘void Windows::Foundation::Uninitialize()’:
/usr/share/mingw-w64/include/roapi.h:66:23: error: ‘RoUninitialize’ was not declared in this scope
{ RoUninitialize (); }
^
/usr/share/mingw-w64/include/roapi.h: At global scope:
/usr/share/mingw-w64/include/roapi.h:74:35: error: ‘ABI::Windows::Foundation::Initialze’ declared as an ‘inline’ variable
__inline HRESULT Initialze (RO_INIT_TYPE it
^
/usr/share/mingw-w64/include/roapi.h:74:35: error: ‘RO_INIT_TYPE’ was not declared in this scope
/usr/share/mingw-w64/include/roapi.h:78:9: error: expected ‘,’ or ‘;’ before ‘{’ token
) { return RoInitialize (it); }
^
/usr/share/mingw-w64/include/roapi.h: In function ‘void ABI::Windows::Foundation::Uninitialize()’:
/usr/share/mingw-w64/include/roapi.h:80:25: error: ‘RoUninitialize’ was not declared in this scope
3. Download the "v5.x/mingw-w64-headers/include/roapi.h" and copy to contrib/i686-w64-mingw32/include/. And 'make'.
fatal error: dwrite_2.h: No such file or directory
4. Download the "v5.x/mingw-w64-headers/include/dwrite_2.h" and copy to contrib/i686-w64-mingw32/include/. And 'make'.
In file included from ../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:32:0:
/home/vlc/contrib/i686-w64-mingw32/include/dwrite_2.h:145:1: error: expected class-name before ‘{’ token
{
^
/home/vlc/contrib/i686-w64-mingw32/include/dwrite_2.h:176:1: error: expected class-name before ‘{’ token
{
^
/home/vlc/contrib/i686-w64-mingw32/include/dwrite_2.h:343:27: error: type ‘IDWriteFactory’ is not a base type for type ‘IDWriteFactory2’
using IDWriteFactory::CreateCustomRenderingParams;
^
/home/vlc/contrib/i686-w64-mingw32/include/dwrite_2.h:344:11: error: ‘IDWriteFactory1’ has not been declared
using IDWriteFactory1::CreateCustomRenderingParams;
^
/home/vlc/contrib/i686-w64-mingw32/include/dwrite_2.h:353:9: error: ‘DWRITE_TEXT_ANTIALIAS_MODE’ has not been declared
DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
^
/home/vlc/contrib/i686-w64-mingw32/include/dwrite_2.h:359:27: error: type ‘IDWriteFactory’ is not a base type for type ‘IDWriteFactory2’
using IDWriteFactory::CreateGlyphRunAnalysis;
^
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp: In constructor ‘dw_sys_t::dw_sys_t(HMODULE)’:
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:75:27: error: ‘Microsoft::WRL::ComPtr<IDWriteFactory2>::InterfaceType {aka struct IDWriteFactory2}’ has no member named ‘GetSystemFontCollection’
if( p_dw_factory->GetSystemFontCollection( p_dw_system_fonts.GetAddress
^
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:81:27: error: ‘Microsoft::WRL::ComPtr<IDWriteFactory2>::InterfaceType {aka struct IDWriteFactory2}’ has no member named ‘CreateNumberSubstitution’
if( p_dw_factory->CreateNumberSubstitution( DWRITE_NUMBER_SUBSTITUTION_
^
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp: In function ‘char* DWrite_Fallback(filter_t*, const char*, uni_char_t)’:
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:478:129: error: no matching function for call to ‘TextSource::TextSource(Microsoft::WRL::ComPtr<IDWriteFactory2>::InterfaceType*, Microsoft::WRL::ComPtr<IDWriteNumberSubstitution>::InterfaceType*, wchar_t [2], UINT32&)’
p_dw_factory.Get(), p_dw_sys->p_dw_substitution.Get(), p_text, i_text_length );
^
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:220:5: note: candidate: TextSource::TextSource(IDWriteFactory*, IDWriteNumberSubstitution*, const wchar_t*, uint32_t)
TextSource( IDWriteFactory *p_factory, IDWriteNumberSubstitution *p_substit
^
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:220:5: note: no known conversion for argument 1 from ‘Microsoft::WRL::ComPtr<IDWriteFactory2>::InterfaceType* {aka IDWriteFactory2*}’ to ‘IDWriteFactory*’
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:211:7: note: candidate: constexpr TextSource::TextSource(const TextSource&)
class TextSource : public IDWriteTextAnalysisSource
^
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:211:7: note: candidate expects 1 argument, 4 provided
In file included from ../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:33:0:
/home/vlc/contrib/i686-w64-mingw32/include/wrl/client.h: In instantiation of ‘long unsigned int Microsoft::WRL::ComPtr<T>::InternalRelease() [with T = IDWriteFactory2]’:
/home/vlc/contrib/i686-w64-mingw32/include/wrl/client.h:104:32: required from ‘Microsoft::WRL::ComPtr<T>::~ComPtr() [with T = IDWriteFactory2]’
../../extras/package/win32/../../../modules/text_renderer/freetype/fonts/dwrite.cpp:56:55: required from here
/home/vlc/contrib/i686-w64-mingw32/include/wrl/client.h:264:37: error: ‘Microsoft::WRL::ComPtr<IDWriteFactory2>::InterfaceType {aka struct IDWriteFactory2}’ has no member named ‘Release’
return tmp->Release();
5. Download the "v5.x/mingw-w64-headers/include/dwrite_1.h and dwrite.h" and copy to contrib/i686-w64-mingw32/include/. And 'make'.
-> build done.
===================================== finish my process =====================================
I am trying to package VLC for ms windows, because I met errors too while packaging!!!
added - the cause of packaging error was the directory name "/usr/include/wine-development". I changed the directory to "/usr/include/wine".
Thanks to theguy, I didn't give up.