On 25.11.2013 14:49, Frustrated wrote:
I had an old dmd2 setup that worked perfectly. I recently installed
VS2013, SDK 8, DMD 2.064.2, and VS 3.37 on a fresh system.

I copied the project to the HD, updated the sc.ini files and tried to
compile. Basic projects would compile but my old projects would give
errors either:

user32.lib not found when trying to use optilink. I spend about 2 hours
trying various ways to get it to find the user32.lib file. It will only
look in the project dir. I setup `LIB=` in environment in sc.ini with no
luck.

In x64 mode, the linker gives an error that dmd.obj could not be found.
There is no such thing as dmd.obj and I have no idea why it is finding
this. It could be an issue with visual.d but I see no where that it says
anything about dmd.obj.

Please check the output in the build log, it contains the actually executed command line.


I can't get my old projects to compile. Not that it matters, but here is
my sc.ini file.

The project seems to compile file but simply won't link because of the
above 2 issues.

Please also check the settings in Visual Studio under "Tools->Options->Project and solutions->Visual D->DMD Directories". Depending on the settings there, sc.ini might get ignored.



[Version]
version=7.51 Build 020


; environment for both 32/64 bit
[Environment]
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\8.1\Lib\win8\um
VCINSTALLDIR=D:\Apps\Technical\VS2013\VC\
DFLAGS=-L/nologo "-I%@P%\..\..\src\phobos"
"-I%@P%\..\..\src\druntime\import" "-ID:\DLang\Lib"
LIB="%@P%\..\lib"

[Environment32]
LIB="%WindowsSdkDir%\x86"
; LIB="%@P%\..\lib"

You must use the LIB="%@P%\..\lib" line, the lib folder also contains user32.lib in the format appropriate for optlink. The Windows SDK contains libraries in COFF format that optlink does not understand. (Search for coffimplib to find a converter tool.)


PATH=%PATH%;%VCINSTALLDIR%\bin\x86;%VCINSTALLDIR%\..\Common7\IDE;"%WindowsSdkDir%\x86";

LINKCMD=%@P%\link.exe


[Environment64]
DFLAGS=%DFLAGS% -L/OPT:NOICF
LIB="%WindowsSdkDir%\x64";"%@P%\..\lib64"
PATH=%PATH%;%VCINSTALLDIR%\bin\amd64;%VCINSTALLDIR%\..\Common7\IDE;"%WindowsSdkDir%\x64";

LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe


Reply via email to