www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - Linker bug - can't handle '.' in the DLL name

reply dickl <dick221z yahoo.com> writes:
It appears the linker does not properly reference a DLL in the 
executable when the DLL name contains an embedded '.'.

For example, I'm trying to convert the Intel IPP library for use with D. 
In the new version, the DLLS names are  in the format lib-5.1.dll. 
coffimplib places the name lib-5.1 in the import lib. The application 
links, but when the application is run, it complains that lib-5.1 is not 
found. Normally if a DLL is not found , the application would have said 
lib-5.1.dll not found.

As a side note, implib reports an error if the LIBRARY name contains an '.'
May 21 2006
parent reply Walter Bright <newshound digitalmars.com> writes:
dickl wrote:
 It appears the linker does not properly reference a DLL in the 
 executable when the DLL name contains an embedded '.'.

That's true, any special characters like space, +, ., -, etc., will fail in file names passed to the linker.
May 23 2006
parent dckl <dick221z yahoo.com> writes:
Walter Bright wrote:
 dickl wrote:
 It appears the linker does not properly reference a DLL in the 
 executable when the DLL name contains an embedded '.'.

That's true, any special characters like space, +, ., -, etc., will fail in file names passed to the linker.

The problems is not that the name is passed to the linker on the command line. The DLL name is in the link (import) library but the linker doesn't properly put the name in the executable for it to load. Looking at the executable, the linker puts lib-5.1 in the executable rather than lib-5.1.DLL
May 23 2006