This is part of a series of at least two closely related, but distinct questions. I hope I'm doing the right thing by asking them separately.
I'm trying to get my Visual C++ 2008 app to work without the C Runtime Library. It's a Win32 GUI app without MFC or other fancy stuff, just plain Windows API.
So I set Project Properties -> Configuration -> C/C++ -> Advanced -> Omit Default Library Names to Yes (compiler flag /Zl
) and rebuilt. Let's pretend I have written a suitable entry point function, which is the subject of my other question.
I get two linker errors; they are probably related. The linker complains about unresolved external symbols __fltused
and _memcpy
in foobar.obj
. Needless to say, I use neither explicitly in my program, but I do use memcpy
somewhere in foobar.cpp
. (I would have used CopyMemory
but that turns out to be #define
d to be identical to memcpy
...)
(I thought I could get rid of the memcpy
problem by using a compiler intrinsic, like #pragma intrinsic(memcpy)
, but this makes no difference.)
If I look at the preprocessor output (adding /P
to the compiler command line), I see no references to either __fltused
or _memcpy
in foobar.i
.
So, my question is: Where do these linker errors come from, and how do I resolve them?