digitalmars.D.bugs - library pragma doesn't like extra periods
- J C Calvarese (45/45) Apr 17 2005 I found a problem where D gets confused by
I found a problem where D gets confused by
pragma(lib, "recls.D.lib");
and
pragma(lib, "recls.dm.lib");
Somehow, it loses the ".lib" at the end.
Here's my code:
import std.stdio;
import std.recls;
version(origNames)
{
pragma(lib, "recls.D.lib");
pragma(lib, "recls.dm.lib");
}
else
{
pragma(lib, "recls_D.lib");
pragma(lib, "recls_dm.lib");
}
pragma(lib, "wininet.lib");
void main()
{
FtpSearch f;
}
If I compile it using the original names[version(origNames)], it can't
find the files:
I:\pgm\d\examples\recls>dmd ftpsearch.d -version=origNames
d:\dmd\bin\..\..\dm\bin\link.exe ftpsearch,,,user32+kernel32/noi;
OPTLINK (R) for Win32 Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved
recls.D
Warning 2: File Not Found recls.D
recls.dm
Warning 2: File Not Found recls.dm
If I compile with new names (replacing the first period with an
underscore and not setting a version), it works fine.
So I've found two work-arounds to this issue.
1) Rename the libs to only have one period.
2) Add the .lib's to the command line rather than through pragmas.
(By the way, I'm using the recls libs and source from
http://recls.org/downloads.html and the wininet.lib from
http://svn.dsource.org/svn/projects/bindings/trunk/lib/.)
I'm using DMD v0.121 on Windows XP.
--
jcc7
http://jcc_7.tripod.com/d/
Apr 17 2005








J C Calvarese <jcc7 cox.net>