Page 1 of 1

Two build errors, help me

Posted: 16 Feb 2017 06:22
by KimGwanyoung
Hi all.

I am trying build vlc-2.2.4 and vlc-3.0.0 with ubuntu 14.04 64bits.

But I met errors at these all.

1) in 2.2.4
vlc-2.2.4/win32 $ make
make[4]: *** No rule to make target `access/dvdread.c', needed by `access/libdvdread_plugin_la-dvdread.lo'. Stop.

I can't find a topic about this issue.

2) in 3.3.0
vlc/win32 $ ../extras/package/win32/configure.sh --host=i686-w64-mingw32 --build=x86_64-pc-linux-gnu
configure: error: *** A compiler with support for C++11 language features is required.

I found a topic about this, but I can't see higher version of i686-w64-mingw32-g++.

How can I solve these problem?

Re: Two build errors, help me

Posted: 16 Feb 2017 15:45
by theguy
According to the wiki, ubuntu 14.04 is too old to compile recent versions of VLC. try 16.04 on a virtual machine if you can't upgrade your current one. I was able to compile vlc 3.0.0 on ubuntu 16.04 it wasn't easy though. had to solve several problems. like you need protobuf > 3.0 (I had to use protobuf 3.1) and not ubuntu's protobuf 2.6. Also when you try again don't forget to do make clean before make.

Re: Two build errors, help me

Posted: 17 Feb 2017 03:24
by KimGwanyoung
According to the wiki, ubuntu 14.04 is too old to compile recent versions of VLC. try 16.04 on a virtual machine if you can't upgrade your current one. I was able to compile vlc 3.0.0 on ubuntu 16.04 it wasn't easy though. had to solve several problems. like you need protobuf > 3.0 (I had to use protobuf 3.1) and not ubuntu's protobuf 2.6. Also when you try again don't forget to do make clean before make.
OK, I am downloading the ubuntu 16.04 LTS.
But for the vlc-2.2.4, does the 16.04 need too?

Re: Two build errors, help me

Posted: 17 Feb 2017 06:20
by KimGwanyoung
According to the wiki, ubuntu 14.04 is too old to compile recent versions of VLC. try 16.04 on a virtual machine if you can't upgrade your current one. I was able to compile vlc 3.0.0 on ubuntu 16.04 it wasn't easy though. had to solve several problems. like you need protobuf > 3.0 (I had to use protobuf 3.1) and not ubuntu's protobuf 2.6. Also when you try again don't forget to do make clean before make.
Hi, I rebuild now.
But I met another error when I typed "make" after "make fetch".
d3d11/d3d11.idl:20: error: Unable to open include file oaidl.idl
I couldn't find a topic about this at vlc forum and google.

Did you ever seen this error?

Re: Two build errors, help me

Posted: 17 Feb 2017 10:05
by KimGwanyoung
According to the wiki, ubuntu 14.04 is too old to compile recent versions of VLC. try 16.04 on a virtual machine if you can't upgrade your current one. I was able to compile vlc 3.0.0 on ubuntu 16.04 it wasn't easy though. had to solve several problems. like you need protobuf > 3.0 (I had to use protobuf 3.1) and not ubuntu's protobuf 2.6. Also when you try again don't forget to do make clean before make.
OK, I am downloading the ubuntu 16.04 LTS.
But for the vlc-2.2.4, does the 16.04 need too?
I modified contrib/src/d3d11/rules.mak and contrib/src/d3d9/rules.mak.
====================================================
ifdef HAVE_CROSS_COMPILE
IDL_INC_PATH = /usr/include/wine/windows/
else
#ugly way to get the default location of standard idl files
IDL_INC_PATH = /`echo $(MSYSTEM) | tr A-Z a-z`/$(BUILD)/include
endif

+IDL_INC_PATH = /usr/include/wine-development/windows/
====================================================
I added last line.
And install protobuf 3.1.
So, ./configure is OK.

Then, type make, last process.
And error too. T.T

The error message.
../../extras/package/win32/../../../modules/access/dshow/access.h:33:24: fatal error: wrl/client.h: No such file or directory

If you know this, let me know how to fix.

Re: Two build errors, help me

Posted: 18 Feb 2017 07:24
by theguy
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

Re: Two build errors, help me

Posted: 21 Feb 2017 06:03
by KimGwanyoung
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.

Re: Two build errors, help me

Posted: 09 Mar 2017 10:52
by runner0502
thank you , this work for me

Re: Two build errors, help me

Posted: 05 Dec 2018 17:05
by Hanks
According to the wiki, ubuntu 14.04 is too old to compile recent versions of VLC. try 16.04 on a virtual machine if you can't upgrade your current one. I was able to compile vlc 3.0.0 on ubuntu 16.04 it wasn't easy though. had to solve several problems. like you need protobuf > 3.0 (I had to use protobuf 3.1) and not ubuntu's protobuf 2.6. Also when you try again don't forget to do make clean before make.
Hi, I rebuild now.
But I met another error when I typed "make" after "make fetch".
d3d11/d3d11.idl:20: error: Unable to open include file oaidl.idl
I couldn't find a topic about this at vlc forum and google.

Did you ever seen this error?
Hi, thank you for your poster. I also meet this error after I make fetch. could you tell me how you solve it? Thank you very much!