Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program nie może otworzyć pliku "nazwa pliku"
Uwagi
Ten błąd jest zgłaszany, gdy konsolidator nie może otworzyć pliku w celu odczytu lub zapisu. Dwie najczęstsze przyczyny problemu to:
Program jest już uruchomiony lub jest ładowany w debugerze i
ścieżki biblioteki są niepoprawne lub nie są opakowane w cudzysłowy.
Istnieje wiele innych możliwych przyczyn tego błędu. Aby je zawęzić, najpierw sprawdź, jaki jest rodzaj nazwy pliku. Następnie skorzystaj z poniższych sekcji, aby zidentyfikować i rozwiązać konkretny problem.
Nie można otworzyć aplikacji ani pliku .pdb
Aplikacja jest uruchomiona lub jest ładowana do debugera
Jeśli nazwa pliku jest nazwą pliku wykonywalnego lub skojarzonym plikiem .pdb, sprawdź, czy aplikacja jest już uruchomiona. Następnie sprawdź, czy jest załadowany do debugera. Aby rozwiązać ten problem, zatrzymaj program i zwolnij go z debugera przed ponownym utworzeniem. Jeśli aplikacja jest otwarta w innym programie, takim jak edytor zasobów, zamknij ją. Jeśli program nie odpowiada, może być konieczne użycie Menedżera zadań w celu zakończenia procesu. Może być również konieczne zamknięcie i ponowne uruchomienie programu Visual Studio.
Aplikacja jest zablokowana przez skanowanie antywirusowe
Programy antywirusowe często tymczasowo blokują dostęp do nowo utworzonych plików, zwłaszcza .exe i .dll plików wykonywalnych. Aby rozwiązać ten problem, spróbuj wykluczyć katalogi kompilacji projektu ze skanera antywirusowego.
Nie można otworzyć pliku biblioteki firmy Microsoft
Biblioteki systemu Windows, takie jak kernel32.lib
Jeśli nie można otworzyć pliku jest jednym ze standardowych plików bibliotek udostępnianych przez firmę Microsoft, takich jak kernel32.lib, może wystąpić błąd konfiguracji projektu lub błąd instalacji. Sprawdź, czy zestaw Windows SDK jest zainstalowany. Jeśli projekt wymaga innych bibliotek firmy Microsoft, takich jak MFC, upewnij się, że składniki MFC zostały również zainstalowane przez instalatora programu Visual Studio. Instalator można ponownie uruchomić, aby w dowolnym momencie dodać opcjonalne składniki. Aby uzyskać więcej informacji, zobacz Modyfikowanie programu Visual Studio. Użyj karty Poszczególne składniki w instalatorze, aby wybrać określone biblioteki i zestawy SDK.
Wersjonowane biblioteki vcruntime
Jeśli komunikat o błędzie zawiera wersję biblioteki firmy Microsoft, takiej jak msvcr120.lib, zestaw narzędzi platformy dla tej wersji kompilatora może nie być zainstalowany. Aby rozwiązać ten problem, masz dwie opcje: Uaktualnij projekt do korzystania z bieżącego zestawu narzędzi platformy lub zainstaluj starszy zestaw narzędzi i skompiluj projekt bez zmian. Aby uzyskać więcej informacji, zobacz Uaktualnianie projektów z wcześniejszych wersji programu Visual C++ i Używanie natywnego wielowersyjności w programie Visual Studio do kompilowania starych projektów.
Biblioteki dotyczące handlu detalicznego, debugowania lub platformy
Błąd może wystąpić podczas pierwszej kompilacji nowej platformy docelowej lub konfiguracji, takiej jak Retail lub ARM64. W środowisku IDE sprawdź, czy zainstalowano zestaw narzędzi platformy i wersję zestawu Windows SDK określoną na stronie właściwości Ogólne. Sprawdź również, czy wymagane biblioteki są dostępne w katalogach bibliotek określonych na stronie właściwości Katalogi VC++. Sprawdź właściwości każdej konfiguracji, takie jak Debugowanie, Handel detaliczny, x86 lub ARM64. Jeśli jedna kompilacja działa, ale inna nie, porównaj ustawienia obu tych opcji. Zainstaluj wszystkie brakujące wymagane narzędzia i biblioteki.
Biblioteka vccorlib.lib
Dla aplikacji lub składników systemu Uniwersalnego systemu Windows (UWP) nie ma żadnych bibliotek z ograniczeniem specyfikacji. Jeśli komunikat o błędzie zawiera plik vccorlib.lib, być może został włączony /Qspectre w projekcie platformy UWP. Wyłącz opcję kompilatora, /Qspectre aby rozwiązać ten problem. W programie Visual Studio zmień właściwość Spectre Mitigation . Znajduje się on na >w oknie dialogowym Strony właściwości projektu.
Biblioteki w projektach z trybu online lub innych źródeł
Jeśli tworzysz projekt skopiowany z innego komputera, lokalizacje instalacji biblioteki mogą być inne. W przypadku kompilacji wiersza polecenia sprawdź, czy zmienna środowiskowa LIB i ścieżki biblioteki są ustawione poprawnie dla kompilacji. W programie Visual Studio można wyświetlić i edytować bieżące ścieżki biblioteki ustawione na stronach Właściwości projektu. Na stronie Katalogi VC++ wybierz kontrolkę listy rozwijanej dla właściwości Katalogi biblioteki, a następnie wybierz pozycję Edytuj. Sekcja Ocena wartości okna dialogowego Katalogi bibliotek zawiera listę bieżących ścieżek przeszukanych dla plików biblioteki. Zaktualizuj te ścieżki, aby wskazywały biblioteki lokalne.
Zaktualizowane biblioteki zestawu Windows SDK
Ten błąd może wystąpić, gdy ścieżka programu Visual Studio do zestawu Windows SDK jest nieaktualna. Może się to zdarzyć, jeśli zainstalujesz nowszy zestaw Windows SDK niezależnie od instalatora programu Visual Studio. Aby rozwiązać ten problem w środowisku IDE, zaktualizuj ścieżki określone na stronie właściwości Katalogi VC++. Ustaw wersję w ścieżce tak, aby odpowiadała nowemu zestawowi SDK. Jeśli używasz wiersza polecenia dla deweloperów, zaktualizuj plik wsadowy, który inicjuje zmienne środowiskowe przy użyciu nowych ścieżek zestawu SDK. Ten problem można uniknąć za pomocą instalatora programu Visual Studio w celu zainstalowania zaktualizowanych zestawów SDK.
Nie można otworzyć pliku biblioteki innej firmy
Istnieje kilka typowych przyczyn tego problemu:
Ścieżka do pliku biblioteki może być niepoprawna lub nie owinięta w cudzysłowach. Możesz też nie określić go w konsolidatorze.
Być może zainstalowano 32-bitową wersję biblioteki, ale tworzysz 64 bity lub w drugą stronę.
Biblioteka może mieć zależności od innych bibliotek, które nie są zainstalowane.
Aby rozwiązać problem ze ścieżką kompilacji wiersza polecenia, sprawdź, czy zmienna środowiskowa LIB jest ustawiona. Upewnij się, że zawiera ścieżki dla wszystkich używanych bibliotek i dla każdej utworzonej konfiguracji. W środowisku IDE ścieżki biblioteki są ustawiane przez właściwość Katalogi> bibliotek VC++. Upewnij się, że wszystkie katalogi zawierające potrzebne biblioteki są wymienione tutaj dla każdej tworzonej konfiguracji.
Może być konieczne podanie katalogu biblioteki, który zastępuje standardowy katalog biblioteki. W wierszu polecenia użyj /LIBPATH opcji . W środowisku IDE użyj właściwości Dodatkowe katalogi biblioteki na > konsolidatora > dla projektu.
Upewnij się, że instalujesz każdą wersję biblioteki potrzebnej do kompilacji konfiguracji. Rozważ użycie narzędzia do zarządzania pakietami vcpkg w celu zautomatyzowania instalacji i konfiguracji dla wielu popularnych bibliotek. Jeśli to możliwe, najlepiej utworzyć własne kopie bibliotek innych firm. Następnie na pewno masz lokalne zależności bibliotek, które zostały utworzone dla tych samych konfiguracji co projekt.
Nie można otworzyć pliku utworzonego przez projekt
Ten błąd może wystąpić, jeśli nazwa pliku jeszcze nie istnieje, gdy konsolidator próbuje uzyskać do niego dostęp. Może się to zdarzyć, gdy jeden projekt zależy od innego w rozwiązaniu, ale projekty kompilują się w niewłaściwej kolejności. Aby rozwiązać ten problem, upewnij się, że odwołania do projektu zostały ustawione w projekcie, który używa pliku. Następnie brakujący plik zostanie skompilowany przed jego użyciem. Aby uzyskać więcej informacji, zobacz Dodawanie odwołań w projektach visual Studio C++ i Zarządzanie odwołaniami w projekcie.
Nie można otworzyć pliku "C:\Program.obj"
Jeśli w komunikacie o błędzie zostanie wyświetlona nazwa pliku C:\Program.obj , opakuj ścieżki biblioteki w cudzysłowach podwójnych. Ten błąd występuje, gdy ścieżka rozpasana rozpoczynająca się od C:\Program Files zostaje przekazana do konsolidatora. Niezapisane ścieżki mogą również powodować podobne błędy. Zazwyczaj wyświetla nieoczekiwany plik .obj w katalogu głównym dysku.
Aby rozwiązać ten problem w przypadku kompilacji wiersza polecenia, sprawdź parametry opcji /LIBPATH . Sprawdź również ścieżki określone w zmiennej środowiskowej LIB i ścieżki określone w wierszu polecenia. Pamiętaj, aby używać podwójnych cudzysłowów wokół wszystkich ścieżek, które zawierają spacje.
Aby rozwiązać ten problem w środowisku IDE, dodaj podwójne cudzysłowy zgodnie z potrzebami do następujących właściwości projektu:
Właściwość Katalogi biblioteki na stronie właściwości Właściwości > konfiguracji VC++ Katalogi ,
Właściwość Dodatkowe katalogi biblioteki na > konsolidatora > konfiguracji,
Właściwość Dodatkowe zależności na stronie właściwości właściwości > konsolidatora konsolidatora > konfiguracji.
Inne typowe problemy
Problemy ze ścieżką lub nazwą pliku
Ten błąd może wystąpić, gdy nazwa pliku biblioteki lub ścieżka określona w konsolidatorze jest niepoprawna. Lub, gdy ścieżka ma nieprawidłową specyfikację dysku. Poszukaj w wierszu polecenia lub w dowolnej #pragma comment( lib, "library_name" ) dyrektywy w przypadku problemów. Sprawdź pisownię i rozszerzenie pliku, a następnie sprawdź, czy plik istnieje w określonej lokalizacji.
Synchronizacja kompilacji równoległej
Jeśli używasz opcji kompilacji równoległej, program Visual Studio mógł zablokować plik w innym wątku. Aby rozwiązać ten problem, sprawdź, czy ten sam obiekt kodu lub biblioteka nie są wbudowane w wiele projektów. Użyj zależności kompilacji lub odwołań do projektu, aby pobrać wbudowane pliki binarne w projekcie.
Dodatkowe zależności określone w środowisku IDE
W przypadku bezpośredniego określania poszczególnych bibliotek we właściwości Dodatkowe zależności użyj spacji , aby oddzielić nazwy bibliotek. Nie używaj przecinków ani średników. Jeśli używasz elementu menu Edytuj , aby otworzyć okno dialogowe Dodatkowe zależności , użyj nowych linii, aby oddzielić nazwy, a nie przecinki, średniki lub spacje. Ponadto należy używać nowych linii podczas określania ścieżek biblioteki w katalogach biblioteki i dodatkowych katalogów w oknach dialogowych.
Ścieżki, które są za długie
Ten błąd może wystąpić, gdy ścieżka nazwy pliku rozwija się do więcej niż 260 znaków. W razie potrzeby zmień strukturę katalogu lub skróć nazwy folderów i plików, aby skrócić ścieżki.
Pliki, które są za duże
Ten błąd może wystąpić, ponieważ plik jest za duży. Biblioteki lub pliki obiektów o rozmiarze większym niż gigabajt mogą powodować problemy z konsolidatorem 32-bitowym. Możliwe rozwiązanie tego problemu polega na użyciu zestawu narzędzi 64-bitowych. Aby uzyskać więcej informacji na temat korzystania z zestawu narzędzi 64-bitowych w wierszu polecenia, zobacz Instrukcje: włączanie 64-bitowego zestawu narzędzi Visual C++ w wierszu polecenia. Aby uzyskać informacje na temat korzystania z zestawu narzędzi 64-bitowych w środowisku IDE, zobacz Using MSBuild with the 64-bit compiler and Tools (Używanie programu MSBuild z 64-bitowym kompilatorem i narzędziami). Zobacz również ten wpis Stack Overflow: Jak sprawić, aby program Visual Studio używał natywnego łańcucha narzędzi amd64.
Nieprawidłowe uprawnienia do pliku
Ten błąd może wystąpić, jeśli masz niewystarczające uprawnienia do uzyskiwania dostępu do nazwy pliku. Może się to zdarzyć, jeśli używasz zwykłego konta użytkownika do uzyskiwania dostępu do plików biblioteki w chronionych katalogach systemowych. Lub, jeśli używasz plików skopiowanych z innych użytkowników, którzy nadal mają swoje oryginalne uprawnienia ustawione. Aby rozwiązać ten problem, przenieś plik do katalogu projektu z możliwością zapisu. Jeśli przeniesiony plik ma niedostępne uprawnienia, uruchom polecenie takeown.exe w oknie poleceń administratora, aby przejąć własność pliku.
Za mało miejsca na dysku
Błąd może wystąpić, gdy nie masz wystarczającej ilości miejsca na dysku. Konsolidator używa plików tymczasowych w kilku przypadkach. Nawet jeśli masz wystarczającą ilość miejsca na dysku, duże łącze może wyczerpywać lub fragmentować dostępne miejsce na dysku. Rozważ użycie /OPT (Optymalizacje) opcji; wykonywanie przechodniej eliminacji COMDAT odczytuje wszystkie pliki obiektów wiele razy.
Problemy w zmiennej środowiskowej TMP
Jeśli nazwa pliku ma nazwę LNKnnn, jest to nazwa pliku wygenerowana przez konsolidator dla pliku tymczasowego. Katalog określony w zmiennej środowiskowej TMP może nie istnieć. Można też określić więcej niż jeden katalog dla zmiennej środowiskowej TMP. Dla zmiennej środowiskowej TMP należy określić tylko jedną ścieżkę katalogu.
Pomoc, mojego problemu nie ma tutaj!
Jeśli żaden z wymienionych tutaj problemów nie ma zastosowania, możesz użyć narzędzi do przesyłania opinii w programie Visual Studio, aby uzyskać pomoc. W środowisku IDE przejdź do paska menu i wybierz pozycję >>. Możesz też przesłać sugestię, korzystając z opcji Wyślij opinię > w Pomocy>, wyślij sugestię. Możesz również użyć witryny Microsoft Learn Q&A , aby uzyskać pytania i witrynę internetową Visual Studio C++ Developer Community . Użyj tych witryn, aby wyszukać odpowiedzi na pytania i poprosić o pomoc. Aby uzyskać więcej informacji, zobacz How to report a problem with the Visual C++ toolset or documentation (Jak zgłosić problem z zestawem narzędzi lub dokumentacją języka Visual C++).
Jeśli odkryliśmy nowy sposób rozwiązania tego problemu, który powinniśmy dodać do tego artykułu, daj nam znać. Możesz wysłać nam opinię, korzystając z poniższego przycisku dla tej strony. Użyj go, aby utworzyć nowy problem w naszym repozytorium GitHub dokumentacji języka C++. Dziękujemy.