digitalmars.D.learn - issue importing std.file or std.stdio on win x64 build.
- Jonathan Villa (38/38) Dec 02 2015 Hello,
Hello, I've been trying to program and app that writes its own log, so, to deal with files I tried using std.file. But with just adding the import std.file; it throws me (AFAIK) a link error: (some texts are in spanish, I tried to translate the important thing) Building Release\ASI.exe... libucrt.lib(fgetc.obj) : error LNK2005: already defined _fgetc_nolock in phobos64.lib(stdio_374_54d.obj) phobos64.lib(stdio_374_54d.obj) : error LNK2019: extern symbol _filbuf [unresolved referred in the function] _fgetc_nolock Release\ASI.exe : fatal error LNK1120: 1 externos sin resolver Building Release\ASI.exe failed! This only happens with x64 build, in x86 works fine, but I want to stick with x64 as much as possible. So I did some research to get some kind of alternative and I found that std.stdio has a File class to work with, I implemented it, but now throws me the following: (some texts are in spanish, I tried to translate the important thing) Building Release\ASI.exe... phobos64.lib(stdio_373_566.obj) : error LNK2019: extern symbol _flsbuf [unresolved referred in the function] _fputc_nolock Release\ASI.exe : fatal error LNK1120: 1 externos sin resolver Building Release\ASI.exe failed! I did some research again, and the _flsbuf function is in: https://github.com/D-Programming-Language/druntime/blob/6f6ec7f4706b128bffaefe9145bec9581e2e7d39/src/rt/msvc.c at line 94. _fgetc_nolock is in msvc.c (druntime) and std/stdio.d as well (phobos lib). What can I do to resolve this issue? Using std.stdio looks like it should be easier to resolve, BUT in the future I want to implement some file/directory management and std.file can do that job, so advices to get rid of the first problem would be my first priority. I'm using VisualD 0.3.43 on Visual Studio Community 2015. Any kind of advice will be appreciated. Thanks.
Dec 02 2015