- NSIS Discussion
- Cannot open libc.lib
Archive: Cannot open libc.lib
TobbeSweden
24th January 2009 21:56 UTC
Cannot open libc.lib
I'm trying to compile a plugin using Visual Studio 2008, but I get the following error message:
LINK : fatal error LNK1104: cannot open file 'LIBC.lib'
How do I solve this? I don't see libc.lib included anywhere, so I don't even know why it's looking for it...
kichik
24th January 2009 22:01 UTC
2008 is not supported by SCons. See some recent threads on the subject.
TobbeSweden
25th January 2009 08:14 UTC
I know. I'm not using SCons. I'm trying to compile a third-party plugin.
kichik
25th January 2009 23:04 UTC
If you're importing a dsp file, remove the libc reference and use the flags in C/C++ properties page (/MT, /MD, etc.).
TobbeSweden
26th January 2009 00:55 UTC
I converted/imported the ExDll project from v2.42. I searched through all files, libc.lib is not included anywhere. I tried both /MT and /MD, both give the same result. (Cannot open libc.lib)
I think it's the provided pluginapi.lib file that depends on libc.lib. Is there anything I can do about that?
jimpark
26th January 2009 02:04 UTC
You do not need libc.lib with VS 2008. It is implied and links without an explicit libc.lib reference. Remove it from the project.
TobbeSweden
26th January 2009 04:32 UTC
From what project? My project (ExDll) does not include libc.lib anywhere.
jimpark
29th January 2009 22:56 UTC
Are you compiling via a VS 2008 project or via Scons?
TobbeSweden
29th January 2009 22:59 UTC
VS 2008 project
kichik
30th January 2009 17:35 UTC
The plug-in library is requesting libc.lib for an unknown reason. I will check it out. You should open a bug report for it.
kichik
31st January 2009 16:06 UTC
I've looked a bit more into it and all files contain that reference. It's the /NODEFAULTLIB flag that cancels them. You should use that flag with VS2008 too and it should work. I don't know how it's called in the GUI but it should be under Linker in Project Settings. Maybe Ignore Default Libraries or something similar.
TobbeSweden
31st January 2009 17:25 UTC
This is the output with /NODEFAULTLIB turned on:
1>------ Build started: Project: exdll, Configuration: Debug Win32 ------
1>Compiling...
1>exdll.c
1>Compiling manifest to resources...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Linking...
1> Creating library .\Debug/exdll.lib and object .\Debug/exdll.exp
1>exdll.obj : error LNK2019: unresolved external symbol ___security_cookie referenced in function _myFunction
1>exdll.obj : error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function _myFunction
1>exdll.obj : error LNK2019: unresolved external symbol @_RTC_CheckStackVars@8 referenced in function _myFunction
1>exdll.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in function _myFunction
1>exdll.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
1>exdll.obj : error LNK2001: unresolved external symbol __RTC_InitBase
1>LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12
1>.\Debug/exdll.dll : fatal error LNK1120: 7 unresolved externals
1>Build log was saved at "file://c:\Program\NSIS\Examples\Plugin\Debug\BuildLog.htm"
1>exdll - 8 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Anders
31st January 2009 18:11 UTC
specify DllMain as the entry point
kichik
31st January 2009 18:29 UTC
And get rid of all the safety checks.
TobbeSweden
1st February 2009 09:09 UTC
So I manually defined the entry point and disabled "Buffer Security Check" (/GS-).
I'm now down to the following error messages:
1>------ Build started: Project: exdll, Configuration: Debug Win32 ------
1>Compiling...
1>exdll.c
1>Linking...
1> Creating library .\Debug/exdll.lib and object .\Debug/exdll.exp
1>exdll.obj : error LNK2019: unresolved external symbol @_RTC_CheckStackVars@8 referenced in function _myFunction
1>exdll.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in function _myFunction
1>exdll.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
1>exdll.obj : error LNK2001: unresolved external symbol __RTC_InitBase
1>.\Debug/exdll.dll : fatal error LNK1120: 4 unresolved externals
1>Build log was saved at "file://c:\Program\NSIS\Examples\Plugin\Debug\BuildLog.htm"
1>exdll - 5 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
TobbeSweden
1st February 2009 09:13 UTC
Got rid of the last errors by setting "Basic Runtime Checks" to "Default" in the project properties.
kichik
1st February 2009 11:37 UTC
Could you post the resulting vcproj/sln so I can include it?
TobbeSweden
1st February 2009 11:57 UTC
Most certainly :)
kichik
1st February 2009 12:06 UTC
Thanks.