Questo fa parte di una serie di almeno due domande strettamente correlate, ma distinte. Spero di fare la cosa giusta chiedendoli separatamente.Creazione dell'app Visual C++ che non utilizza le funzioni CRT fa ancora riferimento ad alcuni
Sto cercando di far funzionare l'app Visual C++ 2008 senza la libreria di runtime C. Si tratta di un'app GUI Win32 senza MFC o altro materiale di fantasia, semplicemente l'API di Windows.
Così ho impostato Proprietà progetto -> Configurazione -> C/C++ -> Avanzate -> Ometti nomi libreria predefiniti su Sì (flag di compilazione /Zl
) e ricostruito. Supponiamo di aver scritto una funzione di punto di ingresso adeguata, che è l'oggetto di my other question.
Ottengo due errori di linker; sono probabilmente correlati. Il linker si lamenta di simboli esterni non risolti __fltused
e _memcpy
in foobar.obj
. Inutile dire che non uso nè esplicitamente nel mio programma, ma io uso memcpy
da qualche parte in foobar.cpp
. (Avrei usato CopyMemory
ma che si rivela essere #define
d essere identico a memcpy
...)
(pensavo di poter sbarazzarsi del problema memcpy
utilizzando un compilatore intrinseca, come #pragma intrinsic(memcpy)
, ma questo rende nessuna differenza.)
Se guardo l'uscita del preprocessore (aggiungendo /P
alla riga di comando del compilatore), non vedo alcun riferimento a uno o __fltused
_memcpy
in foobar.i
.
Quindi, la mia domanda è: Da dove vengono questi errori del linker e come li risolvo?
E la tua domanda è? –
Ah ... devo averlo perso in qualche modo mentre dividevo questa cosa in due. Ri-aggiunto, grazie! – Thomas