Sto provando a compilare Microsoft CRT 11 da solo (la versione che accompagna VS2012).Compilazione di Microsoft CRT 11 (msvcrt110.dll) - Qual è l'ordine corretto di include?
Sono consapevole che fino a VS2008 questa azione è stato completamente supportato da Microsoft:
http://msdn.microsoft.com/en-us/library/k9a8ehy3(v=vs.90).aspx
Ma dal momento che VS2010 non sono tenuti a farlo più, e io sono consapevole dei rischi (principalmente - la compilazione di sbagliato, e avendo problemi che non si riesce a capire o risolvere)
sto usando le seguenti directory che vengono con VS come codice e di intestazione file di input:
Code:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\crt\src
Headers:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
C:\Program Files (x86)\Windows Kits\8.0\Include\shared
C:\Program Files (x86)\Windows Kits\8.0\Include\um
C:\Program Files (x86)\Windows Kits\8.0\Include\WinRT
(Finora le uniche modifiche apportate sono la rimozione di alcune fonti MSIL dal progetto)
La maggior parte del codice è già compilata. Ma non riesco a compilare il file
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\crt\src\assert.c
a causa dell'errore:
error C3861: '_ReturnAddress': identifier not found
Se aggiungo
#include <intrin.h>
si è risolto. Ma penso che dovrebbe essere risolvibile senza modifiche dirette al codice.
Naturalmente sto affrontando costantemente nuove sfide. Ma penso che la soluzione a quella attuale sia quella di correggere l'ordine di inclusione delle directory di intestazione. In quale ordine dovrebbero essere utilizzate le directory di intestazione?
Biscotti tenaci. È un'ipotesi su quale versione di SDK hanno usato. Ho il sospetto che le intestazioni di Windows tirino dentro cose come le intrinseche. –