mirror of https://github.com/python/cpython
Patch from Rene Liebscher: generate an /IMPLIB: option to ensure that
the linker leaves the (temporary) .lib file in the temporary dir. (Moved from 'msvc_prelink_hack()' method in build_ext.py.)
This commit is contained in:
parent
0419a4ffba
commit
159eb92239
|
@ -380,10 +380,22 @@ class MSVCCompiler (CCompiler) :
|
||||||
ld_args = (ldflags + lib_opts + export_opts +
|
ld_args = (ldflags + lib_opts + export_opts +
|
||||||
objects + ['/OUT:' + output_filename])
|
objects + ['/OUT:' + output_filename])
|
||||||
|
|
||||||
|
# The MSVC linker generates .lib and .exp files, which cannot be
|
||||||
|
# suppressed by any linker switches. The .lib files may even be
|
||||||
|
# needed! Make sure they are generated in the temporary build
|
||||||
|
# directory. Since they have different names for debug and release
|
||||||
|
# builds, they can go into the same directory.
|
||||||
|
(dll_name, dll_ext) = os.path.splitext(
|
||||||
|
os.path.basename(output_filename))
|
||||||
|
implib_file = os.path.join(
|
||||||
|
os.path.dirname(objects[0]),
|
||||||
|
self.library_filename(dll_name))
|
||||||
|
ld_args.append ('/IMPLIB:' + implib_file)
|
||||||
|
|
||||||
if extra_preargs:
|
if extra_preargs:
|
||||||
ld_args[:0] = extra_preargs
|
ld_args[:0] = extra_preargs
|
||||||
if extra_postargs:
|
if extra_postargs:
|
||||||
ld_args.extend (extra_postargs)
|
ld_args.extend(extra_postargs)
|
||||||
|
|
||||||
print "link_shared_object():"
|
print "link_shared_object():"
|
||||||
print " output_filename =", output_filename
|
print " output_filename =", output_filename
|
||||||
|
|
Loading…
Reference in New Issue