I am having problems getting multiple projects to work in MSCV. I have a Kernel project creating the kernel dll and a Hal project that creates a static library that is linked in with the kernel.
My problem is that I get 'Unresolved external symbol' linker error, even though the linker claims to have loaded the Hal library and extracted the relevant functions.
I have copied the settings from Demo7 exactly (well - all possibly relevant settings). The linking between Demo7 Lib and Kernel is what I am trying to achieve but I am out of ideas of what is wrong.
Here is my build output, using verbose mode.
Code: Select all
1>------ Build started: Project: Kernel, Configuration: Release Win32 ------
1>Compiling...
1>setup.cpp
1>Linking...
1>Starting pass 1
1>Searching libraries
1> Searching C:\Users\Andrew Cooper\Documents\OS Development\Source\Kernel\Kernel\Release\Hal.lib:
1> Found "void * __cdecl core::memset(void *,unsigned char,unsigned int)" (?memset@core@@YAPAXPAXEI@Z)
1> Referenced in main.obj
1> Loaded Hal.lib(Core.obj)
1> Searching C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\kernel32.lib:
1>Finished searching libraries
1>Generating .exp file
1>LINK : warning LNK4216: Exported entry point _kernel_entry
1> Creating library a:\Kernel.lib and object a:\Kernel.exp
1>Finished generating .exp file
1>Searching libraries
1> Searching C:\Users\Andrew Cooper\Documents\OS Development\Source\Kernel\Kernel\Release\Hal.lib:
1> Searching C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\kernel32.lib:
1>Finished searching libraries
1>Finished pass 1
1>a:\Kernel.dll : warning LNK4086: entrypoint '_kernel_entry' is not __stdcall with 12 bytes of arguments; image may not run
1>Hal.lib(Core.obj) : error LNK2019: unresolved external symbol _memset referenced in function "void * __cdecl core::memset(void *,unsigned char,unsigned int)" (?memset@core@@YAPAXPAXEI@Z)
1>a:\Kernel.dll : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\Andrew Cooper\Documents\OS Development\Source\Kernel\Kernel\Kernel\Release\BuildLog.htm"
1>Kernel - 2 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Hope someone can help,
Andrew