Newsgroup: it.comp.programmare.win32
Titolo: compilare truecrypt su xp

Salve a tutti, sto cercando di compilare truecrypt da sorgente su
windows xp.
Inutile dire che non ci riesco....
Il file readme insieme ai sorgenti, tra i requisiti per la
compilazione dice:
Requirements for Building TrueCrypt for Windows:
------------------------------------------------
- Microsoft Visual C++ 2008 SP1 (Professional Edition or compatible)
- Microsoft Visual C++ 1.52 (available from MSDN Subscriber Downloads)
- Microsoft Windows SDK for Windows 7
- Microsoft Windows Driver Kit 7.0.0 (build 7600.16385.0)
- RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki)
2.20
  header files (available at 
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20
)
- NASM assembler (2.06 or compatible)
- gzip compressor
Ho molta confusione in testa. Per i primi due punti ho installato
Microsoft VIsual C++ 2010 Express, la versione gratuita; possono
esserci problemi dato che non corrisponde alla tabella di cui sopra?
Il fatto è che si tratta di roba che non ho trovato gratis ma solo
pagando (e anche tantissimo, ma questo è un altro discorso). In
particolare la versione 1.52 a quanto ho capito non è vecchia ma
arcaica e non più supportata da molto tempo.
L'SDK per windows 7 non mi dovrebbe servire dato che per ora lo voglio
compilare solo su xp, o sbaglio?
Il Microsoft windows driver kit 7.0.0 non capisco a cosa serva ne come
"interfacciarlo" con il resto.
In pratica, mi sembra che per i miei scopi i requisiti siano almeno
ridondanti. Al momento, il visual c++ mi dice che il progetto è
composto da 6 parti, 1 la compila e le altre no.
Purtroppo non ho trovato info da nessuna altra parte, la
documentazione ufficiale è un po' tirata via e non sono abbastanza
esperto da risolvere da solo.
Potete aiutarmi?

 Potete aiutarmi?
HTH
-- 
Raffaele Rialdi  
http://www.iamraf.net
Weblog: 
http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile 
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET - 
http://www.ugidotnet.org/

 più ovvio
Infatti molti errori sembra che dipendano da un paio di .h
"sbagliati".
La cosa che più mi pare strana è che si tratta di un file contenuto
nella ATL, non inclusa nelle librerie fornite ufficialmente con i
componenti che ho installato. Non si tratterebbe però di un problema,
perchè cercando su google si trovano tutti questi .h, li ho presi e
copiati nella cartella adeguata.
Può darsi che nella ATL di windows siano state fatte delle modifiche a
questi .h?

 questi .h?
Le ATL hanno avuto una major update recentemente dopo la SP1 di VS2008. 
Non so però se sono cambiate le include.
Per tua info a breve dovrebbe uscire il nuovo Winsdk. Stiamo a vedere 
se conterrà nuove include/lib.
A parte tutto questo adesso ti compila?


 A parte tutto questo adesso ti compila?
Ho installato la windows driver kit, ma non mi pare sia cambiato
niente
Gli erorri che ottengo sono, per il primo modulo:
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
NMAKE : fatal error U1077: 'C:\Programmi\MicrosoftVisualStudio10.0\VC
\bin\cl.exe' : return code '0xc0000135'
  Stop.
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "md
Release 2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: md Release_AES
2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1 SINGLE_CIPHER=AES
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: md
Release_Serpent 2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1 SINGLE_CIPHER=SERPENT
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: md
Release_Twofish 2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1 SINGLE_CIPHER=TWOFISH
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: md Rescue
2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1 RESCUE_DISK=1
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: md Rescue_AES
2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1 SINGLE_CIPHER=AES RESCUE_DISK=1
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: md
Rescue_Serpent 2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1 SINGLE_CIPHER=SERPENT RESCUE_DISK=1
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: md
Rescue_Twofish 2>NUL:
C:\Programmi\MSBuild\Microsoft.Cpp
\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake.exe /
nologo RELEASE=1 SINGLE_CIPHER=TWOFISH RESCUE_DISK=1" exited with code
2.
per gli altri (riporto brevemente)
C:\Programmi\Microsoft SDKs\Windows\v7.0A\include\wingdi.h(2037) : see
declaration of 'DEVMODEW'
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlconv.h(704):
error C2065: 'dmLogPixels' : undeclared identifier
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlconv.h(704):
error C3861: 'offsetof': identifier not found
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlconv.h(714):
error C3861: '_ASSERTE': identifier not found
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlconv.h(903):
error C3861: 'offsetof': identifier not found
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlexcept.h(62):
error C2144: syntax error : 'void' should be preceded by ';'
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlexcept.h(62):
error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlexcept.h(81):
error C2144: syntax error : 'void' should be preceded by ';'
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlexcept.h(81):
error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlexcept.h(81):
error C2086: 'int ATL::ATL_NOINLINE' : redefinition
C:\Programmi\MicrosoftVisualStudio10.0\VC\include\atlexcept.h(62) :
see declaration of 'ATL::ATL_NOINLINE'
Ma la lista è lunghissima.
C'è un modo per vedere se le define sono corrette?
In alternativa, riuscite a darmi un link da dove scaricare le versioni
"esatte" richieste dalla documentazione della Microsoft Visual C++
2008 SP1 (Professional Edition or compatible) o della Microsoft Visual
C++ 1.52?
(Possibilmente gratuita e legale, altrimenti non ho risolto niente...)
Ho un disperato bisogno di aiuto :(

 Ho un disperato bisogno di aiuto :(
La pro è a pagamento e quindi non c'è un download gratuito per l'esatta 
struttura delle include e lib.
Cmq per me anche se ce le avessi non risolveresti il problema. Secondo 
me il problema è quello di incastrare nel modo giusto gli sdk/wdk con 
le var di environment.


 le var di environment.
Penso anche io.
Ma non so come...

 ci fossero delle differenze. E' possibile questo?
Non so dirti se la copia che hai fatto sia sufficiente.
Gli errori fanno intuire che mancano delle dichiarazioni, quindi alcune 
include non vengono trovate oppure sbagliate (per es: winnt.h)
Ma fammi capire una cosa, stai compilando l'applicazione, il driver o 
entrambi?
Perché il driver va certamente compilato dalla cmd prompt del wdk, 
mentre l'applicazione da quello di vs per i motivi che dicevo 
nell'altro post.


 entrambi?
sto compilando l'applicazione.
Mi sorge il dubbio che non vengano trovati delle funzioni "base" del
C.
Ad esempio, ho l'errore "_ASSERTE" identifier not found, ma cercando
su google vedo che
_ASSERTE è una macro che si trova nella C run-time library.
Come faccio a vedere dove si trovano queste librerie ed eventualmente
a settare il path corretto?E in quale variabile di sistema dovrei
andare a cercare?


Scusa l'intromissione, ma solitamente questi errori si manifestano nel 
momento in cui il tuo compilatore/linker non trova le librerie dove sono 
implementate tali macro, quindi oltre gli include corretti devi settare 
anche il percorso corretto dove trovare i file di libreria.

 andare a cercare?
L'include di _ASSERTE è dentro crtdbg.h come specificato qui:
http://msdn.microsoft.com/en-us/library/ezb1wyez(VS.80).aspx
Per quanto riguarda la lib, dipende da come è stato impostato il 
progetto.
Le CRT possono essere linkate statiche/dinamiche, multithreaded/ 
singlethreaded (scelta valida solo per vecchi progetti, adesso sono 
tutte multithreaded), debug/release.
La tabella che ti dice quale lib viene cercata a seconda dell'opzione 
del compilatore è qui:
http://msdn.microsoft.com/en-us/library/abx4dbyh(v=VS.80).aspx
Magari prova a compilare qualcosa di più semplice per verificare che le 
path siano a posto...


 path siano a posto...
Purtroppo non ci capisco niente di IDE e/o C++ e non saprei cosa fare;
ho provato a cercare un HelloWorld.cpp ma dopo non riesco più nemmeno
a trovare il pulsante "Build" nel menu. :(

 a trovare il pulsante "Build" nel menu. :(
La gestione della configurazione è totalmente rifatta in VC++2010.
Adesso viene usato msbuild per uniformità per gli altri linguaggi e 
anche per l'estrema pluggabilità del sistema di build che può essere 
automatizzato in tutte le sue parti.
Le dialog per gestire tutto ciò sono quelle che ottieni facendo 
pulsante destro proprietà sull'icona del progetto.
