2010-12-13 8 views
7

Ho cercato di compilare un programma con minw32, su win7. Ogni volta che provo a compilarlo, ricevo un errore su sal.h mancante. Ho scaricato sia Visual Studio C++ 2010 (Express) e ho ottenuto l'SDK Microsoft Win7. Anche dopo tutto questo, non ho ancora trovato il file di intestazione. C'è un posto dove potrei scaricarlo?Come ottengo sal.h

risposta

9

E 'situato in

"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include" (VS 2008) 

o

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include" (VS 2010) 

o

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include" (VS 2012) 

naturalmente, si consiglia di adattarsi ai vostri percorsi di installazione locali.

+0

Cosa può fare un inclusione nel percorso di installazione VS quando si tenta di compilare con MinGW? – Elmi

+0

@elmi - Perché le annotazioni SAL (http://msdn.microsoft.com/en-us/library/ms235402.aspx) fanno parte di Microsoft Visual C++ fornito con Microsoft Visual Studio, non incluso nell'SDK di Windows né in altri Microsoft -provided SDK, che ti piaccia o no. –

+0

Hm, quindi la risposta sarebbe, non è possibile compilare qualcosa dal WinSDK con MingW (incluse le cose DirectX) !? – Elmi

1

Come la risposta precedente dice, SAL è una cosa di Visual Studio. IMHO è una grande tecnologia che aiuta il compilatore a capire il codice in modo che possa emettere avvisi quando si fa qualcosa di sbagliato. Sfortunatamente, Microsoft seems to own a patent on it so other compilers can't implement it ☹. Anche se prendi una copia di sal.h dall'installazione di VS, dubito sinceramente che funzionerà con mingw poiché tradurrà le macro in attributi che gcc/mingw non comprende.

Ho messo insieme un piccolo progetto chiamato Salieri un po 'indietro che è fondamentalmente una versione portatile dell'intestazione SAL che definisce solo le macro SAL. Non otterrai nessuno dei vantaggi del codice annotato SAL, ma dovrebbe aiutarti a ottenere il codice che utilizza SAL per compilare su altri compilatori.

Siamo spiacenti di promuovere il mio progetto qui, ma penso che potrebbe essere utile per molte persone che si imbattono in questo post.