VS2013 VisualD OPTLINK : Error 2: pointing to a directory

ParticlePeter via Digitalmars-d-ide digitalmars-d-ide at puremagic.com
Mon Apr 6 23:59:22 PDT 2015


On Monday, 6 April 2015 at 18:34:55 UTC, Rainer Schuetze wrote:
>
>
> On 06.04.2015 14:32, ParticlePeter wrote:
>> Hello Community,
>> I have freshly installed VS2013 on Win8-64 and VisualD 3.40, 
>> optilink
>> and VS Linker ( using MS-COF ) have a similar wired problem. I 
>> have no
>> issues linking dub ( same projects as with VisualD ) and CPP 
>> projects.
>>
>> OPTILINK:
>> Building Debug\myApp.exe...
>> Access is denied.
>> Access is denied.
>> Access is denied.
>> Access is denied.
>> Access is denied.
>> OPTLINK (R) for Win32  Release 8.00.17
>> Copyright (C) Digital Mars 1989-2013  All rights reserved.
>> http://www.digitalmars.com/ctg/optlink.html
>> OPTLINK : Error 2: File Not Found E:\Code\DLang\myLib
>> Building Debug\myApp.exe failed!
>>
>> MS linker with MS-COF:
>> Building Debug\myApp.exe...
>> Access is denied.
>> Access is denied.
>> Microsoft (R) Incremental Linker Version 12.00.31101.0
>> Copyright (C) Microsoft Corporation.  All rights reserved.
>> LINK : fatal error LNK1104: cannot open file 
>> 'E:\Code\DLang\myLib'
>> Building Debug\myApp.exe failed!
>>
>> Both the errors inform me that the linker cannot find a FILE, 
>> but the
>> path is a (existing!) DIRECTORY. I do not build and use 
>> myLib.lib in the
>> myApp project but instead I use the source files from myLib as
>> additional imports. These source files are located in
>> E:\Code\DLang\myLib\source. I have no idea why the linker is 
>> directly
>> using the path E:\Code\DLang\myLib for whatever.
>
> If you just import the files, you probably also added a 
> precompiled library to the linker inputs. Maybe this is where 
> you added the path instead of the library file?

I veryfied that, I use only "Libary Files : derelict.lib" and 
"Library Search Path : $(DERELICT)\lib ), where the lib is stored.

>> I also don't hav a clue why the access is denied. No older 
>> version of
>> myApp.exe is running, and I checked the write-protection 
>> attributes of
>> all the files and folders.
>>
>> Any idea whats going wrong ?
>>
>
> Could you also post the *.build.cmd and the *.buildlog.html 
> files from the output folder?

Yes. myLib.lib and myApp.exe are obviously not the names I use, 
so additional explanation to my setup (e.g. $(ENGINE) and 
$(DERELICT_SOURCE)) is further bellow. This setup worked 
correctly with DMD 2.066.1 package and VS2013.

Debug Command line (using optilink):
"$(VisualDInstallDir)pipedmd.exe" dmd -g -debug -X 
-Xf"$(IntDir)\$(TargetName).json" -I"$(ENGINE)\source" 
-I"$(DERELICT_SOURCE)" -deps="$(OutDir)\$(ProjectName).dep" 
-of"$(OutDir)\$(ProjectName).exe_cv" -map 
"$(INTDIR)\$(SAFEPROJECTNAME).map" -L/NOMAP derelict.lib


Build Log


Building Debug\zempty.exe


Command Line

set PATH=D:\Code\DLang\dmd2\windows\bin;D:\Code\VS 
2013\\Common7\IDE;C:\Program Files (x86)\Windows 
Kits\8.1\\bin;%PATH%
set DMD_LIB=;E:\Code\DLang\derelictOrg\lib
dmd -g -debug -X -Xf"Debug\zempty.json" 
-I"E:\Code\DLang\engine\source" 
-I"E:\Code\DLang\derelictOrg\derelictUtil\source;E:\Code\DLang\derelictOrg\derelictGL3\source;E:\Code\DLang\derelictOrg\derelictGLFW3\source;E:\Code\DLang\derelictOrg\derelictIL\source" 
-deps="Debug\zempty.dep" -c -of"Debug\zempty.obj" source\empty.d 
source\main.d source\world.d
if errorlevel 1 goto reportError

set LIB="D:\Code\DLang\dmd2\windows\bin\..\lib"
echo. > E:\Code\DLang\engine 
projects\zempty\Debug\zempty.build.lnkarg
echo 
"Debug\zempty.obj","Debug\zempty.exe_cv","Debug\zempty.map",derelict.lib+ 
 >> E:\Code\DLang\engine projects\zempty\Debug\zempty.build.lnkarg
echo user32.lib+ >> E:\Code\DLang\engine 
projects\zempty\Debug\zempty.build.lnkarg
echo kernel32.lib+ >> E:\Code\DLang\engine 
projects\zempty\Debug\zempty.build.lnkarg
echo "E:\Code\DLang\derelictOrg\lib\"/NOMAP/CO/NOI/DELEXE >> 
E:\Code\DLang\engine projects\zempty\Debug\zempty.build.lnkarg

"D:\Code\DLang\VisualD\pipedmd.exe" -deps Debug\zempty.lnkdep 
D:\Code\DLang\dmd2\windows\bin\link.exe @E:\Code\DLang\engine 
projects\zempty\Debug\zempty.build.lnkarg
if errorlevel 1 goto reportError
if not exist "Debug\zempty.exe_cv" (echo "Debug\zempty.exe_cv" 
not created! && goto reportError)
echo Converting debug information...
"D:\Code\DLang\VisualD\cv2pdb\cv2pdb.exe" "Debug\zempty.exe_cv" 
"Debug\zempty.exe"
if errorlevel 1 goto reportError
if not exist "Debug\zempty.exe" (echo "Debug\zempty.exe" not 
created! && goto reportError)

goto noError

:reportError
echo Building Debug\zempty.exe failed!

:noError

Output

Access is denied.
Access is denied.
Access is denied.
Access is denied.
Access is denied.
OPTLINK (R) for Win32  Release 8.00.17
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
OPTLINK : Error 2: File Not Found E:\Code\DLang\engine
Building Debug\zempty.exe failed!

----------------------------------------------------------

Additional Info about my setup:

WIP Title of myLib: engine
Path to the project is E:\Code\DLang\engine
Win8 Env Var: $(ENGINE) points to that path

myApp title is zempty, building zempty.exe
I import the sourcefiles of engine (Additional imports) with: 
$(ENGINE)\source

Additionally I use some DerelictOrg libs:
Win8 Env Var: $(DERELICT) points to E:\Code\DLang\derlictOrg
Win8 Env Var: $(DERELICT_SOURCE) points to miltiple folders:
   $(DERELICT)\DerelictUtil\source
   $(DERELICT)\DerelictGL3\source
   etc...
All of them are build into one derelict.lib in $(DERELICT)\lib







More information about the Digitalmars-d-ide mailing list