Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive il codice di errore MSB8041.
Testo del messaggio
MSB8041: MFC/ATL Libraries are required for this project.
Descrizione
Questo errore si verifica quando il progetto richiede Microsoft Foundation Classes (MFC) o Active Template Library (ATL), ma le librerie non vengono trovate. Le librerie MFC e ATL non vengono installate per impostazione predefinita quando si installa un carico di lavoro C++ in Visual Studio.
Risoluzione
Verificare che siano installate le versioni corrette delle librerie MFC e ATL per il set di strumenti di compilazione. Sono disponibili versioni di MFC per ogni versione degli strumenti di compilazione C++, per ogni piattaforma di destinazione e con o senza mitigazioni Spectre. Ad esempio, C++ MFC per gli strumenti di compilazione v143 più recenti (x86 e x64) include le librerie x86 e x64 senza mitigazioni Spectre per la versione più recente di Visual Studio 2022 (v143). Se si vuole semplicemente usare le librerie più recenti per una determinata versione di un set di strumenti di Visual Studio, è necessario C++ MFC per gli strumenti di compilazione più recenti ([versione]) per build non Spectre e C++ MFC per gli strumenti di compilazione più recenti [versione] con mitigazioni Spectre ([destinazione]) per le build con mitigazione Spectre . Scegliere l'opzione corretta per l'architettura della piattaforma di destinazione. Le altre opzioni supportano scenari per una destinazione specifica di un set di strumenti precedente. Per altre informazioni, vedere Versioni della libreria MFC.
Installare librerie MFC e ATL
Aprire il programma di installazione di Visual Studio.
Selezionare il pulsante Modifica accanto alla versione di Visual Studio usata.
Selezionare la scheda Componenti individuali nella parte superiore della finestra di dialogo.
Nella casella Cerca componenti immettere MFC.
Selezionare i componenti MFC corrispondenti alle destinazioni del progetto, ad esempio x86 o ARM64EC. Selezionare i componenti con mitigazioni Spectre se si compilano i progetti con mitigazioni Spectre abilitate.
Nella maggior parte dei casi, si vuole selezionare MFC per gli strumenti di compilazione più recenti. L'organizzazione o il progetto potrebbe richiedere una versione precedente specifica del set di strumenti. Assicurarsi che la versione, le destinazioni e le mitigazioni Spectre dei componenti MFC installati corrispondano alla versione del set di strumenti, alle destinazioni e alle mitigazioni Spectre richieste dal progetto che si sta compilando.
Nella casella Cerca componenti immettere ATL.
Selezionare i componenti ATL corrispondenti alle destinazioni del progetto, ad esempio x86 o ARM64EC. Selezionare i componenti con mitigazioni Spectre se si compilano i progetti con mitigazioni Spectre abilitate.
Nella maggior parte dei casi, si vuole selezionare ATL per gli strumenti di compilazione più recenti. L'organizzazione o il progetto potrebbe richiedere una versione precedente specifica degli strumenti di compilazione MSVC. Assicurarsi che la versione, le destinazioni e le mitigazioni Spectre dei componenti ATL installati corrispondano alla versione del set di strumenti, alle destinazioni e alle mitigazioni Spectre richieste dal progetto che si sta compilando.
Selezionare Modifica per installare i componenti selezionati.
Per altre informazioni sulla modifica di Visual Studio per installare le librerie e i file binari necessari, vedere Modificare Visual Studio.
Esplora la diagnostica avanzata
Per la risoluzione dei problemi di compilazione dettagliata, l'errore di MSB8041 viene attivato nel processo di compilazione C++ nella destinazione MSBuild Microsoft.CppBuild.targets quando il file seguente non viene trovato: $(VCToolsInstallDir)atlmfc\lib\$(_SpectreLibsDir)$(PlatformShortName)\mfcs140.lib. Le proprietà provengono dall'ambiente ($(VCToolsInstallDir)) e dalla configurazione del progetto: $(_SpectreLibsDir) è vuota o spectre\, $(PlatformShortName) è x86, x64, arm, arm64, o arm64EC.
Si applica a:
Tutte le versioni di MSBuild