Esto es parte de una serie de al menos dos preguntas estrechamente relacionadas pero distintas. Espero estar haciendo lo correcto preguntándoles por separado.Construir la aplicación Visual C++ que no utiliza funciones CRT todavía hace referencias a
Estoy tratando de hacer que mi aplicación Visual C++ 2008 funcione sin la C Runtime Library. Es una aplicación GUI de Win32 sin MFC u otras cosas sofisticadas, simplemente API de Windows.
Así que establezco Propiedades del proyecto -> Configuración -> C/C++ -> Avanzado -> Omitir nombres de biblioteca predeterminados a Sí (indicador del compilador /Zl
) y reconstruido. Supongamos que he escrito una función de punto de entrada adecuada, que es el tema de my other question.
Recibo dos errores de enlazador; probablemente estén relacionados. El enlazador se queja de los símbolos externos no resueltos __fltused
y _memcpy
en foobar.obj
. Huelga decir que no uso explícitamente en mi programa, pero sí uso memcpy
en algún lugar en foobar.cpp
. (Habría utilizado CopyMemory
pero que resulta ser #define
d sea idéntica a memcpy
...)
(pensé que podría deshacerse del problema memcpy
mediante el uso de un compilador intrínseca, como #pragma intrinsic(memcpy)
, pero esto hace no hay diferencia.)
Si miro a la salida del preprocesador (añadiendo /P
a la línea de comandos del compilador), no veo las referencias a tales __fltused
o _memcpy
en foobar.i
.
Entonces, mi pregunta es: ¿De dónde vienen estos errores del enlazador, y cómo los resuelvo?
Y tu pregunta es? –
Ah ... debo haberlo perdido de alguna manera mientras dividía esta cosa en dos. ¡Vuelve a agregarlo, gracias! – Thomas