2014-11-22 4 views
5

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?

+0

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. –

risposta

2

È possibile forzare un inclusione (senza modificare il codice sorgente) nel progetto di Visual Studio (anche se non sono sicuro che sia una soluzione migliore).

Per fare ciò, fare clic con il tasto destro del mouse su .c in Solution Explorer, quindi andare in C/C++ -> Avanzate -> Forza inclusione file e aggiungere intrin.h (o aggiungere /FI"intrin.h "nel comando linea).

Problemi correlati