Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dosya türü dosyası açılamıyor: 'file': message
Derleyici, dosya bulamadıklarında bir C1083 hatası oluşturur. Bu hatanın birçok olası nedeni vardır. Arama yolunun yanlış olması veya eksik veya yanlış adlandırılmış üst bilgi dosyaları en yaygın nedenlerdir, ancak diğer dosya türleri ve sorunlar da C1083'e neden olabilir. Derleyicinin bu hatayı oluşturmasının yaygın nedenlerinden bazıları aşağıdadır.
Belirtilen dosya adı yanlış
Dosyanın adı yanlış yazılmış olabilir. Örneğin,
#include <algorithm.h>
istediğiniz dosyayı bulamayabilirsiniz. C++ Standart Kitaplığı üst bilgi dosyalarının çoğunda dosya adı uzantısı yoktur .h
. Bu #include
yönerge üst bilgiyi bulamaz <algorithm>
. Bu sorunu düzeltmek için doğru dosya adının girildiğini aşağıdaki gibi doğrulayın:
#include <algorithm>
Belirli C Çalışma Zamanı Kitaplığı üstbilgileri , standart ekleme dizininin alt dizininde yer alır. Örneğin, eklemek sys/types.h
için yönergesine sys
alt dizin adını #include
eklemeniz gerekir:
#include <sys/types.h>
Dosya ekleme arama yoluna dahil değil
Derleyici, veya #import
yönergesi için #include
arama kurallarını kullanarak dosyayı bulamıyor. Örneğin, bir üst bilgi dosyası adı tırnak içine alındığında,
#include "myincludefile.h"
bu, derleyiciye dosyayı ilk olarak kaynak dosyayı içeren aynı dizinde aramasını ve ardından derleme ortamı tarafından belirtilen diğer konumlara bakmasını söyler. Tırnak işaretleri içinde mutlak bir yol varsa, derleyici dosyayı yalnızca ilgili konumda arar. Tırnak işaretleri içinde göreli bir konum varsa, derleyici, dosyayı kaynak dizine göreli olan dizinde arar.
Ad köşeli ayraç içine alınmışsa,
#include <stdio.h>
derleyicisi, derleme ortamı, derleyici seçeneği, /I
derleyici seçeneği /X
ve INCLUDE ortam değişkeni tarafından tanımlanan bir arama yolunu izler. Bir dosyayı bulmak için kullanılan arama sırası hakkında belirli ayrıntılar da dahil olmak üzere daha fazla bilgi için bkz . #include Yönergesi (C/C++) ve #import Yönergesi.
Ekleme dosyalarınız kaynak dizininize göre başka bir dizindeyse ve ekleme yönergelerinizde göreli bir yol kullanıyorsanız, açılı ayraçlar yerine çift tırnak kullanmanız gerekir. Örneğin, üst bilgi dosyanız myheader.h
proje kaynaklarınızın headers adlı bir alt dizinindeyse, bu örnek dosyayı bulamaz ve C1083'e neden olur:
#include <headers\myheader.h>
ancak bu örnek işe yarar:
#include "headers\myheader.h"
Göreli yollar, ekleme arama yolundaki dizinlerle de kullanılabilir. INCLUDE ortam değişkenine veya Visual Studio'daki Dizin ekle yolunuza bir dizin eklerseniz, ekleme yönergelerine yolun bir bölümünü eklemeyin. Örneğin, üst bilginiz konumundaysa \path\example\headers\myheader.h
ve Visual Studio'da Dizinleri Ekle yolunuza eklerseniz\path\example\headers\
, ancak yönergeniz #include
dosyaya şu şekilde başvuruyorsa:
#include <headers\myheader.h>
ardından dosya bulunamadı. Ekleme arama yolunda belirtilen dizine göre doğru yolu kullanın. Bu örnekte, ekleme arama yolunu olarak \path\example\
değiştirebilir veya yol kesimini headers\
#include
yönergesinden kaldırabilirsiniz.
Üçüncü taraf kitaplık sorunları ve vcpkg
Derlemenizin bir parçası olarak üçüncü taraf kitaplığını yapılandırmaya çalışırken bu hatayı görürseniz, kitaplığı yüklemek ve derlemek için bir C++ paket yöneticisi olan vcpkg kullanmayı göz önünde bulundurun. vcpkg, büyük ve büyüyen bir üçüncü taraf kitaplık listesini destekler ve projenizin bir parçası olarak başarılı derlemeler için gereken tüm yapılandırma özelliklerini ve bağımlılıklarını ayarlar.
Dosya projenizde, ancak ekleme arama yolunda değil
Üst bilgi dosyaları bir projenin parçası olarak Çözüm Gezgini listelense bile, dosyalar yalnızca kaynak dosyadaki bir #include
veya #import
yönergesi tarafından başvurulduğunda ve ekleme arama yolunda bulunduklarında derleyici tarafından bulunur. Farklı türde yapılar farklı arama yolları kullanabilir. Derleyici /X
seçeneği, dizinleri ekleme arama yolunun dışında tutmak için kullanılabilir. Bu, farklı yapıların aynı ada sahip farklı ekleme dosyalarını kullanmasına, fakat farklı dizinlerde tutulmasına olanak tanır. Bu, önişlemci komutlarını kullanarak koşullu derlemeye alternatiftir. Derleyici seçeneği hakkında /X
daha fazla bilgi için bkz /X
. (Standart Ekleme Yollarını Yoksay).
Bu sorunu gidermek için, eklenen veya içeri aktarılan dosyayı aramak üzere derleyici tarafından kullanılan yolu düzeltin. Yeni bir proje varsayılan ekleme arama yollarını kullanır. Projenize dizin eklemek için ekleme arama yolunu değiştirmeniz gerekebilir. Komut satırında derliyorsanız, dosyanın yolunu belirtmek için include ortam değişkenine veya /I
derleyici seçeneğine yolunu ekleyin.
Visual Studio'da dizin ekle yolunu ayarlamak için projenin Özellik Sayfaları iletişim kutusunu açın. Sol bölmedeki Yapılandırma Özellikleri'nin altında VC++ Dizinleri'ni seçin ve dizinleri ekle özelliğini düzenleyin. Visual Studio'da derleyici tarafından aranan kullanıcı başına ve proje başına dizinler hakkında daha fazla bilgi için bkz . VC++ Dizinleri Özellik Sayfası. Derleyici seçeneği hakkında /I
daha fazla bilgi için bkz /I
. (Ek Ekleme Dizinleri).
KOMUT satırı INCLUDE veya LIB ortamı ayarlanmadı
Derleyici komut satırı üzerinde çağrıldığında, ortam değişkenleri genellikle arama yollarını belirtmek için kullanılır. INCLUDE veya LIB ortam değişkeni tarafından açıklanan arama yolu doğru ayarlanmadıysa, bir C1083 hatası oluşturulabilir. Komut satırı derlemeleri için temel ortamı ayarlamak için bir geliştirici komut istemi kısayolu kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz . Komut Satırında C/C++ Derlemesi. Ortam değişkenlerini kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Derlemede Ortam Değişkenlerini Kullanma.
Dosya kilitli veya kullanımda olabilir
Dosyayı düzenlemek veya dosyaya erişmek için başka bir program kullanıyorsanız dosya kilitli olabilir. Diğer programdaki dosyayı kapatmayı deneyin. Paralel derleme seçeneklerini kullanıyorsanız bazen diğer program Visual Studio'nun kendisi olabilir. Paralel derleme seçeneğinin kapatılması hatanın ortadan kalkmasını sağlıyorsa sorun budur. Diğer paralel derleme sistemlerinde de bu sorun olabilir. Derleme sırasının doğru olması için dosya ve proje bağımlılıklarını ayarlamaya dikkat edin. Bazı durumlarda, birden çok proje tarafından oluşturulabilecek ortak bir dosya için derleme bağımlılığı sırasını zorlamak için bir ara proje oluşturmayı göz önünde bulundurun. Bazen virüsten koruma programları yakın zamanda değiştirilen dosyaları tarama için geçici olarak kilitler. Mümkünse, proje derleme dizinlerinizi virüsten koruma tarayıcısından dışlamanız önerilir.
Dosya adının yanlış versiyonu eklendi
C1083 hatası, dosyanın yanlış versiyonunun eklendiğini de belirtebilir. Örneğin, bir derleme, bu derleme için tasarlanmamış bir #include
üst bilgi dosyası için yönergesi olan bir dosyanın yanlış sürümünü içerebilir. Örneğin, bazı dosyalar yalnızca x86 derlemeleri veya Hata ayıklama derlemeleri için geçerli olabilir. Üst bilgi dosyası bulunamadığında derleyici bir C1083 hatası oluşturur. Bu sorunu gidermek için doğru dosyayı kullanın ve yapıya üstbilgi dosyasını veya dizinini eklemeyin.
Önceden derlenmiş üst bilgiler henüz önceden derlenmemiş
Bir proje önceden derlenmiş üst bilgileri kullanacak şekilde yapılandırıldığında, üst bilgi içeriğini kullanan dosyaların derlenebilmesi için ilgili .pch
dosyaların oluşturulması gerekir. Örneğin, pch.cpp
dosya (stdafx.cpp
Visual Studio 2017 ve önceki sürümlerinde) yeni projeler için proje dizininde otomatik olarak oluşturulur. Önceden derlenmiş üstbilgi dosyalarını oluşturmak için öncelikle bu dosyayı derleyin. Tipik derleme işlemi tasarımında, bu otomatik olarak yapılır. Daha fazla bilgi için bkz . Önceden Derlenmiş Üst Bilgi Dosyaları Oluşturma.
Diğer nedenler
BIR SDK veya üçüncü taraf kitaplığı yüklediniz, ancak yeni bir geliştirici komut istemi açmadınız. SDK veya kitaplık INCLUDE yoluna dosya eklerse, bu ortam değişkeni değişikliklerini almak için yeni bir geliştirici komut istemi penceresi açmanız gerekebilir.
Dosya yönetilen kod kullanıyor, ancak derleyici seçeneği
/clr
belirtilmemiş. Daha fazla bilgi için bkz/clr
. (Ortak Dil Çalışma Zamanı Derlemesi).Dosya, üst bilgileri önceden derlemek için kullanılandan farklı
/analyze
bir derleyici seçeneği ayarı kullanılarak derlenmiş. Bir projenin üst bilgileri önceden derlendiğinde, tümü aynı/analyze
ayarları kullanmalıdır. Daha fazla bilgi için bkz/analyze
. (Kod Analizi).Dosya veya dizin Linux için Windows Alt Sistemi tarafından oluşturuldu, dizin başına büyük/küçük harf duyarlılığı etkinleştirildi ve belirtilen yol veya dosya durumu disk üzerindeki yol veya dosyanın durumuyla eşleşmiyor.
Dosya, dizin veya disk salt okunur durumdadır.
Visual Studio veya komut satırı araçları, dosyayı veya dizini okumak için yeterli izinlere sahip değildir. Örneğin proje dosyalarının sahipliği Visual Studio veya komut satırı araçlarını çalıştıran işlemden farklı olduğunda bu durum oluşabilir. Bazen bu sorun Visual Studio veya geliştirici komut istemi Yönetici olarak çalıştırılarak düzeltilebilir.
Yeterli dosya tutamacı yok. Bazı uygulamaları kapatın ve sonra yeniden derleyin. Bu normal koşullar altında olağandışı bir durumdur. Fiziksel belleğin sınırlı olduğu bir bilgisayarda büyük projeler oluşturulduğunda meydana gelebilir.
Örnek
Aşağıdaki örnek, üst bilgi dosyası "test.h"
kaynak dizinde veya ekleme arama yolunda olmadığında bir C1083 hatası oluşturur.
// C1083.cpp
// compile with: /c
#include "test.h" // C1083 test.h doesn't exist
#include "stdio.h" // OK
IDE'de veya komut satırında C/C++ projeleri oluşturma ve ortam değişkenlerini ayarlama hakkında bilgi için bkz . Projeler ve derleme sistemleri.