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

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

Martin Maurer
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

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel