service pack1 di VisualC++2010: contiene compilatore x64?
-
giovedì 17 marzo 2011 01:53Ho scaricato è installato il SP1 di Visualstudio 2010. Io ho installata la versione Express di VSC++2010. Nel readme leggo:
- "non installare questo Service Pack se è già stato scaricato e installato Microsoft Windows SDK per Windows 7 e .NET Framework 4 (Windows SDK 7.1) autonomo e si utilizzano i compilatori x64 o IA64 inclusi nel download. Per ulteriori informazioni, vedere l'articolo correlato. ".
Qundi nel SP1 è incluso compilatore x64? Io ho due OS sul mio PC. XPhome e XPx64. VS2010 è installato in XPhome, ma se in questo SP è presente un compilatore x64, sarei interessato ad installare una versione di VS2010 anche in XPx64. Altrimenti sarebbe inutile. Se è presente un compilatore x64, funziona anche nella versione Express di VSC++?
beginner of planning - "non installare questo Service Pack se è già stato scaricato e installato Microsoft Windows SDK per Windows 7 e .NET Framework 4 (Windows SDK 7.1) autonomo e si utilizzano i compilatori x64 o IA64 inclusi nel download. Per ulteriori informazioni, vedere l'articolo correlato. ".
Tutte le risposte
-
giovedì 17 marzo 2011 16:07Moderatore
Ciao, L'avviso è per tutti coloro che insieme a Visual Studio 2010 installano anche il pacchetto autonomo Windows SDK 7.1. Visual C++ 2010 Express non include un compilatore a 64 bit, esso è incluso nella Windows SDK. Dunque, se sei interessato ad avere un compilatore a 64 bit devi intallarti a parte Windows SDK (la versione ultima è appunto la 7.1). Devi stare però attento a installare in un momento successivo il Service Pack 1 perchè ti creerà i problemi deascritti sull'avviso nel readme.
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/- Contrassegnato come risposta Albitex giovedì 17 marzo 2011 23:47
-
giovedì 17 marzo 2011 23:43
. Dunque, se sei interessato ad avere un compilatore a 64 bit devi intallarti a parte Windows SDK (la versione ultima è appunto la 7.1).
Nicolò Zilio
Ma la versione 7.1 dell'SDK è compatibile con XP? O serve solo su Win7?nota: io ho già una versione vecchia dell'SDK installata su XPx64. In questo modo avevo compilato x64, lanciando VC++2008 dalla console del SDK, e impostando i parametri per la compilazione x64. L'operazione era riuscita.
beginner of planning -
venerdì 18 marzo 2011 06:12Moderatore
Ciao,
Si è conmaptibile con Windows XP Service Pack 3.
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/ -
martedì 29 marzo 2011 12:00Moderatore
In ogni caso è stato pubblicato ieri un update che ripristina il compilatore dopo l'installazione del Service Pack 1 per gli utenti che avevano installato precedentemente Windows SDK 7.1. Ecco il link:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=689655b4-c55d-4f9b-9665-2c547e637b70
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/ -
martedì 29 marzo 2011 20:12
Ma adesso ho un po' di confsuione. Riassumendo la mia situazione: io ho in Winx64, VisualC++ 2008 Express che faccio girare su SDK vecchio per il .net framework 3.5. Se voglio aggiornare VC++ alla versione 2010 (come ho fatto su Win32,dove non avevo però nessun SDK installato) cosa mi consiglieresti di fare? D'isinstallare l'SDK prima di effettuare l'aggiornamento a VC 2010? Installare VC 2010, l'SDK 7.1 e poi l'update? In che ordine? Rimuovere comunque prima il vecchio SDK?In ogni caso è stato pubblicato ieri un update che ripristina il compilatore dopo l'installazione del Service Pack 1 per gli utenti che avevano installato precedentemente Windows SDK 7.1.
Nicolò Zilio
beginner of planning -
mercoledì 30 marzo 2011 05:18Moderatore
Puoi aggiornare tranquillamente. Puoi eseguire i seguenti passaggi senza aver problemi: Installare Visual C++ 2010 Express, Windows SDK 7.1(le Windows SDK sono autonome, una nuova versione non elimina la vecchia, se non ti serve più puoi rimuoverla), il Service Pack 1 e l'aggiornamento sopra proposto.
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/ -
giovedì 5 luglio 2012 13:37
Ciao, L'avviso è per tutti coloro che insieme a Visual Studio 2010 installano anche il pacchetto autonomo Windows SDK 7.1. Visual C++ 2010 Express non include un compilatore a 64 bit, esso è incluso nella Windows SDK. Dunque, se sei interessato ad avere un compilatore a 64 bit devi intallarti a parte Windows SDK (la versione ultima è appunto la 7.1). Devi stare però attento a installare in un momento successivo il Service Pack 1 perchè ti creerà i problemi deascritti sull'avviso nel readme.
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/Dunque, sto scaricando l'sdk 7.1. Leggo nella documentazione che per impostare i parametri di compilazione a x64 dal prompt del sdk bisogna scrivere:
"
4. Build Environment
4.1 Moving From the VCBuild to the MSBuild 4.0 Environment
Visual C++ 2010 moved to newer build system (MSBuild v4.0) to provide better performance, scalability and extensibility. In order for the build system migration to happen the project file format in Visual C++ 2010 had to change to a different format in order to be compatible with the new MSBuild v4.0 file format (earlier versions of Visual C++ have used VCBuild as their build system). The extension of the new Visual C++ 2010 project file has been changed from “.vcproj” to “.vcxproj”. Project files with the “.vcproj” extension can be upgraded using the vcupgrade tool (included in this release of the SDK). For more information on how to upgrade a project file, see section titled “Upgrading Projects to Visual C++ 2010.”4.2 Setting Build Environment Switches
To set specific targets in the build environment:· Launch the Windows SDK build environment - From the Start menu, click on All Programs > Microsoft Windows SDK v7.1 > Windows SDK 7.1 Command Prompt
· Set the build environment - At the prompt, type:
setenv [/Debug | /Release][/x86 | /x64 | /ia64 ][/vista | /xp | /2003 | /win7][-h | /?]The setenv.cmd help [-h | /?] displays the usage
/Debug - Create a Debug configuration build environment
/Release - Create a Release configuration build environment
/x86 - Create 32-bit x86 applications
/x64 - Create 64-bit x64 applications
/ia64 - Create 64-bit ia64 applications
/vista - Create Windows Vista SP1 applications or Windows Server 2008
/xp - Create Windows XP applications
/2003 - Create Windows Server 2003 applications".
D'accordo, ma una volta eseguita questa operazione, io avrò impostato il compilatore del sdk, che io dovrò usare da riga di comando? Tra l'altro io ho installato l'sdk vecchio, versione 2. Questo contiene un compilator x64. Ma se da riga di comando lancio cl ecc.. ottengo l'erroe che non mi riconosce i file header, tipo <string>,<iostream>. Scrive impossibile aprire il file, no trovato file o cartella.
beginner of planning
- Modificato Albitex giovedì 5 luglio 2012 13:39
-
giovedì 5 luglio 2012 16:11Moderatore
Una volta installato e configurato l'SDK avrai a disposizione due collegamenti nel menu Start: uno avvierà il prompt con gli strumenti a 32 bit (che sono di default per Visual C++), l'altro (Windows SDK 7.1 Command Prompt 64 bit) avvierà il prompt con il set di strumenti a 64 bit. Lanciando infatti il compilatore tramite il comando cl verrà visualizzato a video che si stà eseguendo il compilatore a 64 bit.
Per utilizzarlo tramite Visual C++ è un pò più complicato, perchè l'SDK configura gli header e le librerie come di default (modificabili da Proprietà Progetto->Set di strumenti della piattaforma), ma non mette direttamente a disposizione il compilatore a 64 bit.
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/- Modificato Nicolò ZilioModerator giovedì 5 luglio 2012 16:11
-
giovedì 5 luglio 2012 16:15Moderatore
Ecco un articolo dell'MSDN Library che spiega come configurare il Progetto per la compilazione a 64 bit.
Nello stesso articolo viene scritto all'inizio:
Gli strumenti a 64 bit non sono per impostazione predefinita disponibili in Visual C++ Express. Per abilitare gli strumenti a 64 bit in Visual C++ Express, installare, oltre a Visual C++ Express, anche Windows Software Development Kit (SDK). In caso contrario, si verifica un errore quando si cerca di configurare un progetto per piattaforma a 64 bit utilizzando Visual C++ Express.
Nicolò Zilio
Personal blog: http://nicolozilio.wordpress.com/(With technical articles)
Personal Web site: http://nicolozilio.altervista.org/ -
domenica 8 luglio 2012 14:18
HO installato l'SDK 7.1. Ho ottenuto l'eseguibile x64, ma solo lanciando VC2010 dalla riga di comando del SDK. Ma quando ho provato a lanciare l'eseguibile ottenuto ho avuto il seguente errore: "MSVCR100.dll non trovato, una nuova installazione del programma potrebbe risolvere il problema". Ho quindi copiato il file MSVCR100.dll nella directory dove è presente l'eseguibile , in questo modo il programma gira.
Dunque intuitivamente credo che MSVCR100.dll sia il collegamento dinamico a VC2010. Quindi il programma girerà solo su PC con il .net framework 4 installato? Questo ne limita la portatilità. Ma come mai nei programmi x32 non ho bisogno della .dll?
nota: questo problema era presente anche prima che installassi l'SDK 7.1. Alla fine io ottenevo, durante le mie prove di compilazione , una cartella con le versioni debug,release e x64, x64b, che erano i nomi alle versioni dei miei tentativi di compilazione. Alcuni exe avevano bisogno della .dll per funzionare, altri (quelli su cui smanettavo sulle impostazioni di compilazione), non avevano bisogno della dll. Quelli che avevano bisogno della dll, erano di dimensioni più piccole e accompagnati da due file di libreria. Mentre quelli che giravano senza dll, erano di dimensioni più grandi (circa il doppio), e non avevano nessuno altro file nella cartella.
beginner of planning
-
lunedì 9 luglio 2012 12:53
Ho risolto leggendo un post di Nicolò Zilio a riguardo: http://social.msdn.microsoft.com/Forums/it-IT/visualcppit/thread/082c35e3-0968-45df-9341-c2170fa904fa
Quindi riassumendo, per compilare x64 con VCExpress2010 ho fatto:
- installato l'SDK 7.1
- ho lanciato VCExpress da riga di comando del SDK. In questo modo l'opzione di compilazione del progetto "piattaforma", s'imposta automaticamente su "piattaforma SDK 7.1". (probabilmente l'opzione può essere impostata anche manualmente, dalle opzioni del progettto di VC). Nota che se non si lancia VC da riga di comando del SDK o s'imposta manualmente l'opzione della piattaforma, quando si cerca di compilare si ottiene l'errore: "impossibile aprire la libreria Kernel32..".
- ho creato un nuovo progetto in VC, progetto VC++ di tipo "generale".
- ho aperto "configuration manager", sono andato su "piattaforma" , ho scelto piattaforma x64, quindi ho creato una nuova versione di soluzione, copiando le impostazioni da "release".
- sono andato su "impostazioni del progetto", ho aperto "opzioni di VC++", ho cambiato l'opzione da /MD a /MT, per ottenere un .exe senza dipendenza da .dll
beginner of planning
- Modificato Albitex lunedì 9 luglio 2012 13:37

