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