Problem with genlib.py from latest cerbero -> lib.exe not found, but "gendef might be missing" reported

Martin Maurer meinemailingliste2 at online.de
Thu Apr 27 18:56:53 UTC 2017


Hello,

using cerbero in classic form (with meson) to compile for x86_64 under 
Windows with win64.cbc.

I got a lot of error message like

WARNING: Could not create libcairo.lib, gendef might be missing

During full building or calling with command “genlibfiles”.

Detailed error e.g. from gstreamer-1.0-gen_library_file.log:

Running command 'gendef c:/gstreamer/1.0/x86_64/bin/libgstbase-1.0-0.dll'

* [c:/gstreamer/1.0/x86_64/bin/libgstbase-1.0-0.dll] Found PE+ image

Running command '/C/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ 
Studio\\ 11.0/Common7/Tools//../../VC/bin/amd64/lib.exe 
/DEF:libgstbase-1.0-0.def /OUT:gstbase-1.0.lib /MACHINE:x64'

sh: /C/Program Files (x86)/Microsoft Visual Studio 
11.0/Common7/Tools//../../VC/bin/amd64/lib.exe: No such file or directory

Running command 'gendef 
c:/gstreamer/1.0/x86_64/bin/libgstcontroller-1.0-0.dll'

* [c:/gstreamer/1.0/x86_64/bin/libgstcontroller-1.0-0.dll] Found PE+ image

Running command '/C/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ 
Studio\\ 11.0/Common7/Tools//../../VC/bin/amd64/lib.exe 
/DEF:libgstcontroller-1.0-0.def /OUT:gstcontroller-1.0.lib /MACHINE:x64'

sh: /C/Program Files (x86)/Microsoft Visual Studio 
11.0/Common7/Tools//../../VC/bin/amd64/lib.exe: No such file or directory

Running command 'gendef c:/gstreamer/1.0/x86_64/bin/libgstnet-1.0-0.dll'

* [c:/gstreamer/1.0/x86_64/bin/libgstnet-1.0-0.dll] Found PE+ image

Running command '/C/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ 
Studio\\ 11.0/Common7/Tools//../../VC/bin/amd64/lib.exe 
/DEF:libgstnet-1.0-0.def /OUT:gstnet-1.0.lib /MACHINE:x64'

sh: /C/Program Files (x86)/Microsoft Visual Studio 
11.0/Common7/Tools//../../VC/bin/amd64/lib.exe: No such file or directory

Running command 'gendef c:/gstreamer/1.0/x86_64/bin/libgstreamer-1.0-0.dll'

* [c:/gstreamer/1.0/x86_64/bin/libgstreamer-1.0-0.dll] Found PE+ image

Running command '/C/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ 
Studio\\ 11.0/Common7/Tools//../../VC/bin/amd64/lib.exe 
/DEF:libgstreamer-1.0-0.def /OUT:gstreamer-1.0.lib /MACHINE:x64'

sh: /C/Program Files (x86)/Microsoft Visual Studio 
11.0/Common7/Tools//../../VC/bin/amd64/lib.exe: No such file or directory

It looks like the error message is misleading. It is not gendef which is 
missing, but the Visual Studio lib.exe which is not found.

Problem is/was, that the directory of Microsoft Visual Studio 11.0 is 
there, but everything else of it was deinstalled

(some temp files left inside, therefore directories were not erased.)

But I have newer version installed, like Microsoft Visual Studio 12.0 
and Microsoft Visual Studio 14.0.


It is more than a "WARNING", because no *.lib were generated at all.

There is genlib.py in cerbero/ide/vs:

     def _get_vc_tools_path(self):

         for version in ['100', '110', '120', '130', '140', '150']:

             variable = 'VS{0}COMNTOOLS'.format(version)

             if variable in os.environ:

                 path = os.path.join(os.environ[variable], '..', '..', 
'VC', 'bin', 'amd64')

                 if os.path.exists (path):

return path

return None

Would descending order not be better than ascending order? Prefer oldest 
version over newest version, where perhaps bugs are fixed?
I assume this function is used for more than finding "lib.exe". But 
perhaps it shall be checked if lib.exe is existing before calling it,
to distinguish between "not available" and "error during execution".
Perhaps it would be even better to give the user a possibility to set 
explicitely the path to Visual Studio,
and give an error message if not set or directory is not existing. 
Assuming e.g. Visual Studio is not installed in (from Microsoft) 
suggested path,
but somewhere else (e.g. a different drive).

There is "amd64" inside. So always assuming that build system is a 64 
bit system compiling for a 64 bit system?
There are also x86_amd64 (and similar variants) or is lib.exe a 32 bit 
binary and equivalent in all variants?

Best regards,

Martin



More information about the gstreamer-devel mailing list