Skip to content
⌘ NSIS Forum Archive

Cannot open libc.lib

20 posts

TobbeSweden#

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#
If you're importing a dsp file, remove the libc reference and use the flags in C/C++ properties page (/MT, /MD, etc.).
TobbeSweden#
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#
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.
kichik#
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.
TobbeSweden#
Reported.

kichik#
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#
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 ==========
TobbeSweden#
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#
Got rid of the last errors by setting "Basic Runtime Checks" to "Default" in the project properties.
TobbeSweden#
Most certainly 🙂