Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez a cikk a MSB8041 hibakódot ismerteti.
Üzenet szövege
MSB8041: MFC/ATL Libraries are required for this project.
Leírás
Ez a hiba akkor fordul elő, ha a projekthez Microsoft Foundation-osztályok (MFC) vagy aktív sablontár (ATL) szükségesek, de a kódtárak nem találhatók. Az MFC- és ATL-kódtárak alapértelmezés szerint nincsenek telepítve, amikor C++ számítási feladatot telepít a Visual Studióban.
Rezolúció
Ellenőrizze, hogy telepítve vannak-e az MFC- és ATL-kódtárak megfelelő verziói a buildelési eszközkészlethez. A C++ buildelési eszközök minden verziójához, minden célplatformhoz és Spectre-kockázatcsökkentéssel vagy anélkül is vannak MFC-verziók. A legújabb v143-buildeszközökhöz (x86 és x64) készült C++ MFC például az x86 - és x64-kódtárakat használja a Visual Studio 2022 (v143) legújabb verziójához tartozó Spectre-kockázatcsökkentések nélkül. Ha egyszerűen csak a legújabb kódtárakat szeretné használni egy Visual Studio-eszközkészlet adott verziójához, akkor a legújabb [verzió] buildelési eszközökhöz ([cél]) C++ MFC szükséges a nem Spectre-buildekhez, a C++ MFC pedig a legújabb [verzió] buildeszközökhöz a Spectre-alapú megoldásokkal ([cél]) a Spectre által csökkentett buildekhez. Válassza ki a célplatform-architektúra megfelelő beállítását. A többi lehetőség támogatja a korábbi eszközkészletek konkrét célzásának forgatókönyveit. További információkért lásd az MFC-kódtár verzióit.
MFC- és ATL-kódtárak telepítése
Nyissa meg a Visual Studio Telepítőt.
Válassza a Használt Visual Studio-verzió melletti Módosítás gombot.
Válassza az Egyes összetevők lapot a párbeszédpanel tetején.
A Keresési összetevők mezőbe írja be az MFC kifejezést.
Válassza ki a projekt céljainak megfelelő MFC-összetevőket, például x86 vagy ARM64EC. Válassza ki a Spectre-kockázatcsökkentéssel rendelkező összetevőket, ha a projekteket a Spectre-kockázatcsökkentések engedélyezett használatával hozza létre.
A legtöbb esetben az MFC-t szeretné kiválasztani a legújabb buildelési eszközökhöz. Előfordulhat, hogy a szervezetnek vagy projektnek szüksége van az eszközkészlet egy adott korábbi verziójára. Győződjön meg arról, hogy a telepített MFC-összetevők verziója, céljai és Spectre-kockázatcsökkentései megegyeznek az eszközkészlet verziójával, a célokkal és a Spectre-kockázatcsökkentésekkel, amelyeket az éppen létrehozott projekt igényel.
A Keresés összetevők mezőbe írja be az ATL értéket.
Válassza ki a projektcéloknak megfelelő ATL-összetevőket, például x86 vagy ARM64EC. Válassza ki a Spectre-kockázatcsökkentéssel rendelkező összetevőket, ha a projekteket a Spectre-kockázatcsökkentések engedélyezett használatával hozza létre.
A legtöbb esetben az ATL-t szeretné kiválasztani a legújabb buildelési eszközökhöz. Előfordulhat, hogy szervezete vagy projektje az MSVC Build Tools egy adott korábbi verzióját igényli. Győződjön meg arról, hogy a telepített ATL-összetevők verzió-, cél- és Spectre-kockázatcsökkentései egyeznek az eszközkészlet verziójával, a célokkal és a Spectre-kockázatcsökkentésekkel, amelyeket az éppen létrehozott projekt igényel.
Válassza a Módosítás lehetőséget a kijelölt összetevők telepítéséhez.
További információ a Visual Studio módosításáról a szükséges kódtárak és bináris fájlok telepítéséhez: Visual Studio módosítása.
A speciális diagnosztikák felfedezése
Részletes összeállítási hibaelhárítás esetén az MSB8041 hibát a C++ összeállítási folyamatban a Microsoft.CppBuild.targets MSBuild cél aktiválja, ha a következő fájl nem található: $(VCToolsInstallDir)atlmfc\lib\$(_SpectreLibsDir)$(PlatformShortName)\mfcs140.lib. A tulajdonságok a környezetből ($(VCToolsInstallDir)) származnak, és a projektkonfiguráció: $(_SpectreLibsDir) üres, vagy spectre\, $(PlatformShortName) is x86, x64arm, , arm64vagy arm64EC.
A következőkre vonatkozik:
Az MSBuild összes verziója