Opened 4 years ago

Closed 4 years ago

#1938 closed enhancement (fixed)

Provide c99wrap.exe and c99conv.exe

Reported by: theateist Owned by:
Priority: wish Component: build system
Version: git-master Keywords: msvc
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

I followed your instructions https://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b, but I fail in one of the steps - compile c99-to-c89-master. How do I compile c99-to-c89-master to get c99wrap.exe, c99conv.exe?

Change History (21)

comment:1 Changed 4 years ago by theateist

  • Component changed from undetermined to build system
  • Priority changed from normal to critical

comment:2 Changed 4 years ago by cehoyos

  • Priority changed from critical to normal

comment:4 Changed 4 years ago by cehoyos

  • Keywords msvc added

comment:5 in reply to: ↑ 3 Changed 4 years ago by theateist

Replying to cehoyos:

Did you try Google's executable?
https://gerrit.chromium.org/gerrit/cat/34728%2C4%2Cchromium/binaries/c99conv.exe%5E0

but where do I get c99wrap.exe?

comment:6 follow-up: Changed 4 years ago by richardpl

The documentation page clearly states link to github page where you can download source code for such binary.

Clearly this extra step should not be needed and executables should be provided for download.

comment:7 in reply to: ↑ 6 Changed 4 years ago by theateist

Replying to richardpl:

The documentation page clearly states link to github page where you can download source code for such binary.

Clearly this extra step should not be needed and executables should be provided for download.

I'm sorry but I didn't understood. The link is to the source code, so as I understand I should some how to compile it in order to get c99conv.exe and c99wrap.exe, right?

Now you say that there should be executables. I'm confused. Do I need to compile in order to get c99conv.exe and c99wrap.exe ( and if I do, how I compile it) or executables should be provided for download ( and if they do, I don't see them in the provided linkt to github)?

comment:8 follow-ups: Changed 4 years ago by cehoyos

  • Reproduced by developer set
  • Status changed from new to open
  • Summary changed from Failed to compile ffmpeg with VS to Provide c99wrap.exe and c99conv.exe
  • Version changed from unspecified to git-master

Use these executables until we can provide them:
https://github.com/libav/c99-to-c89/downloads

comment:9 in reply to: ↑ 8 ; follow-ups: Changed 4 years ago by theateist

Replying to cehoyos:

Use these executables until we can provide them:
https://github.com/libav/c99-to-c89/downloads

1 - I placed makedef, c99wrap.exe, c99conv.exe, and yasm.exe to "c:\ex" and added "c:\ex" to PATH
2 - I downloaded latest ffmpeg source to "c:\ff_src" and placed inttypes.h to "c:\ff_src"
3 - I ran msys.bat from the Visual Studio command prompt.
4 - ran ./configure --toolchain=msvc
5 - ran make

I expected that after "make" I'll get compiled ffmpeg in VS manner and namely lib,pdb,exe files, but I get .a,.d,.o files instead. It seems that it was compiled by gcc and not cl!

What could happened?

Thank you

comment:10 in reply to: ↑ 9 ; follow-up: Changed 4 years ago by cehoyos

Replying to theateist:

4 - ran ./configure --toolchain=msvc
5 - ran make

Did these two steps work successfully, ie without producing error messages?

I expected that after "make" I'll get compiled ffmpeg in VS manner and namely lib,pdb,exe files, but I get .a,.d,.o files instead. It seems that it was compiled by gcc and not cl!

How does the output of "./ffmpeg" look like?

comment:11 Changed 4 years ago by cehoyos

  • Component changed from build system to documentation
  • Priority changed from normal to wish
  • Type changed from defect to enhancement

This is probably more an issue with our website not providing the needed binaries for download.

comment:12 in reply to: ↑ 10 ; follow-up: Changed 4 years ago by theateist

Replying to cehoyos:

Replying to theateist:

4 - ran ./configure --toolchain=msvc
5 - ran make

Did these two steps work successfully, ie without producing error messages?

I expected that after "make" I'll get compiled ffmpeg in VS manner and namely lib,pdb,exe files, but I get .a,.d,.o files instead. It seems that it was compiled by gcc and not cl!

How does the output of "./ffmpeg" look like?

when I ran "ran ./configure --toolchain=msvc" the output on the screen was a long list of names and in the end the following

License: LGPL version 2.1 or later
Creating config.mak and config.h...
libavutil/avconfig.h is unchanged

WARNING: pkg-config not found, library detection may fail.

I don't know what the warning means, so I continued and ran "make". Eventually make finished. I guess there were no errors because I did not saw any error messages.
After "make" command the "ff_src" folder contains: ffmpeg.exe, ffmpeg_g.exe, ffprobe_g.exe, *.o, *.d...
"ff_src/libavcodec" and other folder contains *.o, *.d, *.a.

But there is no pdb files!

At first, I though that somehow gcc.exe runs and not cl.exe, but I checked and cl.exe does runs and not gcc.exe. So, why cl.exe outputs *.o, *.a... and not what cl.exe generally outputs lib, pdb? How to fix it?

comment:13 in reply to: ↑ 12 ; follow-up: Changed 4 years ago by theateist

Replying to theateist:

Replying to cehoyos:

Replying to theateist:

4 - ran ./configure --toolchain=msvc
5 - ran make

Did these two steps work successfully, ie without producing error messages?

I expected that after "make" I'll get compiled ffmpeg in VS manner and namely lib,pdb,exe files, but I get .a,.d,.o files instead. It seems that it was compiled by gcc and not cl!

How does the output of "./ffmpeg" look like?

when I ran "ran ./configure --toolchain=msvc" the output on the screen was a long list of names and in the end the following

License: LGPL version 2.1 or later
Creating config.mak and config.h...
libavutil/avconfig.h is unchanged

WARNING: pkg-config not found, library detection may fail.

I don't know what the warning means, so I continued and ran "make". Eventually make finished. I guess there were no errors because I did not saw any error messages.
After "make" command the "ff_src" folder contains: ffmpeg.exe, ffmpeg_g.exe, ffprobe_g.exe, *.o, *.d...
"ff_src/libavcodec" and other folder contains *.o, *.d, *.a.

But there is no pdb files!

At first, I though that somehow gcc.exe runs and not cl.exe, but I checked and cl.exe does runs and not gcc.exe. So, why cl.exe outputs *.o, *.a... and not what cl.exe generally outputs lib, pdb? How to fix it?

cehoyos, I'm sorry for disturbing, but this very urgent to me in order to understand how some functions in ffmpeg works in order to accomplish my project. Therefore I need those pdb files in order to debug and see how ffmpeg works

comment:14 in reply to: ↑ 8 Changed 4 years ago by dbuitenh

Replying to cehoyos:

Use these executables until we can provide them:
https://github.com/libav/c99-to-c89/downloads

This is the OFFICIAL upstream location for this tool, and you SHOULD grab the binaries from here, REGARDLESS.

c19e9d00a70616b86ae73111a7579a984c5fa585 was not merge properly and needs to reapplied to point to the PROPER upstream.

FYI, Ronald is deleting his repo soon, and it is already unmaintained.

comment:15 in reply to: ↑ 13 ; follow-up: Changed 4 years ago by dbuitenh

I expected that after "make" I'll get compiled ffmpeg in VS manner and namely lib,pdb,exe files, but I get .a,.d,.o files instead. It seems that it was compiled by gcc and not cl!

Wrong. It's just a different object suffix. It's still being compiled by cl.

when I ran "ran ./configure --toolchain=msvc" the output on the screen was a long list of names and in the end the following

License: LGPL version 2.1 or later
Creating config.mak and config.h...
libavutil/avconfig.h is unchanged

WARNING: pkg-config not found, library detection may fail.

I don't know what the warning means, so I continued and ran "make". Eventually make finished. I guess there were no errors because I did not saw any error messages.

You can safely ignore that warning.

After "make" command the "ff_src" folder contains: ffmpeg.exe, ffmpeg_g.exe, ffprobe_g.exe, *.o, *.d...
"ff_src/libavcodec" and other folder contains *.o, *.d, *.a.

But there is no pdb files!

At first, I though that somehow gcc.exe runs and not cl.exe, but I checked and cl.exe does runs and not gcc.exe. So, why cl.exe outputs *.o, *.a... and not what cl.exe generally outputs lib, pdb? How to fix it?

See both above and below.

cehoyos, I'm sorry for disturbing, but this very urgent to me in order to understand how some functions in ffmpeg works in order to accomplish my project. Therefore I need those pdb files in order to debug and see how ffmpeg works

Proper debug flags for --enable-debug need to be added. For now you can ad the proper flags with something like --extra-cflags="-Z7" --extra-ldflags="-DEBUG" or something of the sort.

comment:16 in reply to: ↑ 15 Changed 4 years ago by theateist

Replying to dbuitenh:

I expected that after "make" I'll get compiled ffmpeg in VS manner and namely lib,pdb,exe files, but I get .a,.d,.o files instead. It seems that it was compiled by gcc and not cl!

Wrong. It's just a different object suffix. It's still being compiled by cl.

when I ran "ran ./configure --toolchain=msvc" the output on the screen was a long list of names and in the end the following

License: LGPL version 2.1 or later
Creating config.mak and config.h...
libavutil/avconfig.h is unchanged

WARNING: pkg-config not found, library detection may fail.

I don't know what the warning means, so I continued and ran "make". Eventually make finished. I guess there were no errors because I did not saw any error messages.

You can safely ignore that warning.

After "make" command the "ff_src" folder contains: ffmpeg.exe, ffmpeg_g.exe, ffprobe_g.exe, *.o, *.d...
"ff_src/libavcodec" and other folder contains *.o, *.d, *.a.

But there is no pdb files!

At first, I though that somehow gcc.exe runs and not cl.exe, but I checked and cl.exe does runs and not gcc.exe. So, why cl.exe outputs *.o, *.a... and not what cl.exe generally outputs lib, pdb? How to fix it?

See both above and below.

cehoyos, I'm sorry for disturbing, but this very urgent to me in order to understand how some functions in ffmpeg works in order to accomplish my project. Therefore I need those pdb files in order to debug and see how ffmpeg works

Proper debug flags for --enable-debug need to be added. For now you can ad the proper flags with something like --extra-cflags="-Z7" --extra-ldflags="-DEBUG" or something of the sort.

I tried ./configure --toolchain=msvc --extra-cflags="-Z7" --extra-ldflags="-DEBUG"
and then "make"
It created only 1 pdb file, named something like 101.pdb and that's all.
No psb files for ffmpeg.exe were created. What I'm doing wrong?

Version 0, edited 4 years ago by theateist (next)

comment:17 Changed 4 years ago by theateist

Dbuitenh, do you have opinions what it could be?

comment:18 Changed 4 years ago by theateist

dbuitenh,cehoyos ... anybody?

comment:19 in reply to: ↑ 9 ; follow-up: Changed 4 years ago by rafi

  • Component changed from documentation to build system

Replying to theateist:

Replying to cehoyos:

Use these executables until we can provide them:
https://github.com/libav/c99-to-c89/downloads

1 - I placed makedef, c99wrap.exe, c99conv.exe, and yasm.exe to "c:\ex" and added "c:\ex" to PATH
2 - I downloaded latest ffmpeg source to "c:\ff_src" and placed inttypes.h to "c:\ff_src"
3 - I ran msys.bat from the Visual Studio command prompt.
4 - ran ./configure --toolchain=msvc
5 - ran make

I expected that after "make" I'll get compiled ffmpeg in VS manner and namely lib,pdb,exe files, but I get .a,.d,.o files instead. It seems that it was compiled by gcc and not cl!

What could happened?

Thank you

hello

i followed the steps as described above. but when i run the msys.bat which is located in
my directory : C:\MinGW\msys\1.0
it just enter into some command shell & thats it.
when i edit the msys.bat i see it is shown in my notpad with no CRLF but as long line.
can you help ?

thanks rafi

comment:20 in reply to: ↑ 19 Changed 4 years ago by cehoyos

Replying to rafi:

i followed the steps as described above. but when i run the msys.bat which is located in
my directory : C:\MinGW\msys\1.0
it just enter into some command shell & thats it.

This is what should be expected when running msys.bat afaik

comment:21 Changed 4 years ago by richardpl

  • Resolution set to fixed
  • Status changed from open to closed
Note: See TracTickets for help on using tickets.