D with CygWin
unDEFER via Digitalmars-d
digitalmars-d at puremagic.com
Fri Nov 18 01:33:58 PST 2016
Hello, again!
I'm long have thought and have decided to try to do the next
thing:
I'm trying to list "/" of cygwin environment with the next code:
===============================
import std.stdio;
import cygwin.std.file;
void main()
{
foreach (string name; dirEntries("/", SpanMode.shallow))
{
writefln(name);
}
}
===============================
Where cygwin.std.file is std.file copied to cygwin directory with
replacement "version (Windows)" to "version (WindowsNotWindows)",
"version (Posix)"/"version(linux)"/"version(CRuntime_Glibc)" to
"version (Windows)". Also I have copied all dependencies
core.sys.posix to cygwin directory with the same replacement.
I think that cygwin defines all posix functions, so the Posix
code of D must works under Windows with cygwin libraries.
But now I have the next linker error:
===============================
$ dmd try.d
OPTLINK (R) for Win32 Release 8.00.17
Copyright (C) Digital Mars 1989-2013 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
try.obj(try)
Error 42: Symbol Undefined
_D6cygwin3std4file10dirEntriesFAyaE6cygwin3std4file8SpanModebZS6cygwin3std4file11DirIterator
try.obj(try)
Error 42: Symbol Undefined
_D6cygwin3std4file8DirEntry4nameMxFNaNbNdZAya
try.obj(try)
Error 42: Symbol Undefined
_D6cygwin3std4file11DirIterator8popFrontMFZv
try.obj(try)
Error 42: Symbol Undefined
_D6cygwin3std4file11DirIterator5emptyMFNdZb
try.obj(try)
Error 42: Symbol Undefined
_D6cygwin3std4file11DirIterator5frontMFNdZS6cygwin3std4file8DirEntry
try.obj(try)
Error 42: Symbol Undefined
_D6cygwin3std4file11DirIterator11__fieldDtorMFZv
try.obj(try)
Error 42: Symbol Undefined _D6cygwin3std4file12__ModuleInfoZ
Error: linker exited with status 177865064
===============================
And looks like these functions is not POSIX functions which I can
find in cygwin-libraries. Any ideas?
How to correctly use CygWin under D?
More information about the Digitalmars-d
mailing list