Megosztás:


MSB8041 diagnosztikai kód

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

  1. Nyissa meg a Visual Studio Telepítőt.

  2. Válassza a Használt Visual Studio-verzió melletti Módosítás gombot.

  3. Válassza az Egyes összetevők lapot a párbeszédpanel tetején.

  4. A Keresési összetevők mezőbe írja be az MFC kifejezést.

  5. 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.

  6. A Keresés összetevők mezőbe írja be az ATL értéket.

  7. 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.

  8. 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