Building vpx on VS2015

959 views
Skip to first unread message

Guy Davidson

unread,
Apr 18, 2016, 11:13:14 AM4/18/16
to Codec Developers
This is driving me up the wall: the documentation at http://www.webmproject.org/code/build-prerequisites/ says I should download the prebuilt binary but points to an archive that contains no binaries.  Has anyone built vpx binaries for VS2015 and is prepared to share them?  Or tell me where they ACTUALLY are?

Thanks very much,
Guy

Erik Niemeyer

unread,
Apr 18, 2016, 11:49:25 AM4/18/16
to codec...@webmproject.org
There are no prebuilt Windows binaries distributed by the WebM team AFAIK. The archive you mentioned provides a prebuilt set of project files that will build under VS. 

Erik

--
You received this message because you are subscribed to the Google Groups "Codec Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codec-devel...@webmproject.org.
To post to this group, send email to codec...@webmproject.org.
Visit this group at https://groups.google.com/a/webmproject.org/group/codec-devel/.
For more options, visit https://groups.google.com/a/webmproject.org/d/optout.

Johann Koenig

unread,
Apr 18, 2016, 12:00:38 PM4/18/16
to codec...@webmproject.org
On Mon, Apr 18, 2016 at 8:49 AM, Erik Niemeyer
<erik.a....@gmail.com> wrote:
> There are no prebuilt Windows binaries distributed by the WebM team AFAIK.
> The archive you mentioned provides a prebuilt set of project files that will
> build under VS.
>
> Erik
>
> On Mon, Apr 18, 2016 at 9:13 AM, Guy Davidson <elgu...@gmail.com> wrote:
>>
>> This is driving me up the wall: the documentation at
>> http://www.webmproject.org/code/build-prerequisites/ says I should download
>> the prebuilt binary but points to an archive that contains no binaries. Has
>> anyone built vpx binaries for VS2015 and is prepared to share them? Or tell
>> me where they ACTUALLY are?

Apologies - we no longer offer prebuilt binaries or prebuilt project
files. There are two ways to build for Windows:

Visual Studio. You will need a minimal *nix environment to generate
the project files (cygwin or msys are the standard options). Run
configure with "--target=x86_64-win64-vs14 --as=yasm" and then run
'make' to generate the project files. Install yasm for Visual Studio,
open the project file and build.

GCC. With either a *nix environment such as cygwin or msys or a cross
compiler on linux, configure with "--target=x86_64-win64-gcc"

Guy Davidson

unread,
Apr 19, 2016, 3:16:34 AM4/19/16
to Codec Developers
Thanks Johann.  I'm glad I wasn't going mad!

Cheers,
G

Guy Davidson

unread,
Apr 19, 2016, 6:19:06 AM4/19/16
to Codec Developers
I successfully created the solution and projects, added MSBuild to my path, renamed vsyasm to yasm and ran make.  It built for quite a while before attempting this command:

       Lib:
         C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\Lib.exe /OUT:"C:\cygwin64\home\guy.davidson\libvpx-1.5.0\x64\Debug\vpxmdd.lib" /NOLOGO /MACHINE:X64

which yielded this error:

     3>LINK : fatal error LNK1181: cannot open input file 'x64\Debug\vpx\vpx_ports_emms_asm.obj' [C:\cygwin64\home\guy.davidson\libvpx-1.5.0\vpx.vcxproj]

I could not find the missing object file in my filesystem, nor could I find a source file that might yield the object file.  The file in question was the first in the list of object files, the remainder of which were all in my filesystem.  I notice there is a vpx_ports.mk file which might yield this file: could it be that there is a missing step in the make file?

If you can point me in the direction of a fix, that would be very helpful.  I've attached the output from the last make operation.

Be advised I'm off to speak at ACCU in a couple of hours and won't be able to continue until next Monday.  As a matter of course I will need to build libvpx for each release of Visual Studio from here onwards: is there anything I can do to improve this process for other users for this and future releases?

Cheers,
G

On Monday, 18 April 2016 17:00:38 UTC+1, Johann wrote:
vs2015_make_vpx_output.txt

Johann Koenig

unread,
Apr 19, 2016, 10:11:35 AM4/19/16
to codec...@webmproject.org
On Tue, Apr 19, 2016 at 3:19 AM, Guy Davidson <elgu...@gmail.com> wrote:
> I successfully created the solution and projects, added MSBuild to my path,
> renamed vsyasm to yasm and ran make. It built for quite a while before
> attempting this command:

Unfortunately I am not familiar with this particular path. For Visual
Studio, I have only built by opening the solution file and running the
build through the gui.

I also have not used vsyasm before - we have this note on the prerequisite page:

When installing Yasm, disregard instructions for Visual Studio
integration and use the “general use” executables instead
(yasm-x.x.x-win32.exe or yasm-x.x.x-win64.exe).

> Lib:
> C:\Program Files (x86)\Microsoft Visual Studio
> 14.0\VC\bin\x86_amd64\Lib.exe
> /OUT:"C:\cygwin64\home\guy.davidson\libvpx-1.5.0\x64\Debug\vpxmdd.lib"
> /NOLOGO /MACHINE:X64
>
> which yielded this error:
>
> 3>LINK : fatal error LNK1181: cannot open input file
> 'x64\Debug\vpx\vpx_ports_emms_asm.obj'
> [C:\cygwin64\home\guy.davidson\libvpx-1.5.0\vpx.vcxproj]

My best guess is that it is having trouble finding or using yasm. It
flattened the path. The source file should be
libvpx/vpx_ports/emms.asm and then yasm would generate the .obj

> I could not find the missing object file in my filesystem, nor could I find
> a source file that might yield the object file. The file in question was
> the first in the list of object files, the remainder of which were all in my
> filesystem. I notice there is a vpx_ports.mk file which might yield this
> file: could it be that there is a missing step in the make file?

If it was the first .asm file and it failed then that points to an
issue finding yasm.

> If you can point me in the direction of a fix, that would be very helpful.
> I've attached the output from the last make operation.
>
> Be advised I'm off to speak at ACCU in a couple of hours and won't be able
> to continue until next Monday. As a matter of course I will need to build
> libvpx for each release of Visual Studio from here onwards: is there
> anything I can do to improve this process for other users for this and
> future releases?

Visual Studio is able to import older solution files. I believe that
if you generated projects for VS2010 it should import and build in
2012/13/15/etc.

James Zern

unread,
Apr 19, 2016, 8:17:04 PM4/19/16
to codec...@webmproject.org
On Tue, Apr 19, 2016 at 7:11 AM, 'Johann Koenig' via Codec Developers <codec...@webmproject.org> wrote:
On Tue, Apr 19, 2016 at 3:19 AM, Guy Davidson <elgu...@gmail.com> wrote:
> I successfully created the solution and projects, added MSBuild to my path,
> renamed vsyasm to yasm and ran make.  It built for quite a while before
> attempting this command:

Unfortunately I am not familiar with this particular path. For Visual
Studio, I have only built by opening the solution file and running the
build through the gui.

I also have not used vsyasm before - we have this note on the prerequisite page:

When installing Yasm, disregard instructions for Visual Studio
integration and use the “general use” executables instead
(yasm-x.x.x-win32.exe or yasm-x.x.x-win64.exe).

>        Lib:
>          C:\Program Files (x86)\Microsoft Visual Studio
> 14.0\VC\bin\x86_amd64\Lib.exe
> /OUT:"C:\cygwin64\home\guy.davidson\libvpx-1.5.0\x64\Debug\vpxmdd.lib"
> /NOLOGO /MACHINE:X64
>
> which yielded this error:
>
>      3>LINK : fatal error LNK1181: cannot open input file
> 'x64\Debug\vpx\vpx_ports_emms_asm.obj'
> [C:\cygwin64\home\guy.davidson\libvpx-1.5.0\vpx.vcxproj]

My best guess is that it is having trouble finding or using yasm. It
flattened the path. The source file should be
libvpx/vpx_ports/emms.asm and then yasm would generate the .obj


The flattened path is expected, this error occurs when using vsyasm (I didn't actually look at the root cause). Using one of the win32/win64 builds should work.
Note I currently build vs9-vs14 nightly for x86/x64 against the master branch so we get some notification of build issues.

Guy Davidson

unread,
Apr 26, 2016, 2:59:01 AM4/26/16
to Codec Developers
Thanks both.  The problem was indeed my use of vsyasm.  I failed to read the instructions properly.  Additionally, it took me a while to realise that I had to rename the downloaded file to yasm.exe and put it where it could be found: since we don't have symlinks in Windows the habit of linking a generic name to a specific version in the filesystem is not in use.  I guess there is a gap between the yasm documentation and the WebM documentation.

Cheers,
G
Reply all
Reply to author
Forward
0 new messages