Yanıtlar:
Başlık dosyasını başka bir projeden #include etmek istediğiniz projede, başlık dosyasının yolunu proje yapılandırmasındaki Ek Dahil Etme Dizinleri bölümüne eklemeniz gerekir .
Proje yapılandırmasına erişmek için:
To dosyasının eklenmesinin , sadece kodunda aşağıdakileri yazın:
#include "filename.h"
Dizini Ek Dahil Etme Dizinlerine zaten eklediğiniz için, burada yolu belirtmeniz gerekmediğini unutmayın, böylece Visual Studio onu nerede arayacağını bilir.
Proje ayarlarında her başlık dosyası konumunu eklemek istemiyorsanız, yalnızca bir noktaya kadar bir dizin ekleyebilir ve ardından o noktaya göre #include yapabilirsiniz:
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
Statik kitaplıklar (yani .lib dosyası) kullanıyorsanız, bağlantı sırasında semboller birbirine bağlanabilmesi için kitaplığı bağlayıcı girişine de eklemeniz gerekir (aksi takdirde çözülmemiş bir simge alırsınız):
#include "proj2\include.h"
. Çözüm başına birden fazla projeye sahip olmak, çok farklı kullanıldıkları için NET dillerine yöneliktir. Yine de C ++ projeleri için bunun üstesinden gelmenin harika bir yolunu bulmak.
#include
projelerle hiçbir ilgisi yoktur - sadece önişlemciye "başlık dosyasının içeriğini buraya koy" der. Eğer ona doğru konuma işaret eden bir yol verirseniz (../your_file.h gibi göreli bir yol olabilir), doğru bir şekilde dahil edilecektir.
Bununla birlikte, bu tür projelerin düzgün bir şekilde bağlanması için kütüphaneler (statik / dinamik kütüphaneler) hakkında bilgi edinmeniz gerekecektir - ama bu başka bir soru.
Her iki proje de aynı çözüm altında olduğundan, içerme dosyaları ve bağlayıcı için https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp- adresinde açıklandığı gibi daha basit bir yol vardır. projeler? görünümü = vs-2019 :
#include "../libProject/libHeader.h"
).Derleyicinin başlık dosyalarını bulmaya çalışırken oraya bakması için proje özelliklerinde başlıkların yolunu ayarlamanız gerekir. Tam konumu hatırlayamıyorum, ancak Proje özelliklerine bakın ve görmelisiniz.
Mutlak veya göreceli olsunlar, #include direktifindeki tam yol referanslarından kaçınmaya çalışın. Bunun yerine, diğer projenin içerme klasörünün konumunu proje ayarlarınıza ekleyin. Gerektiğinde yol referanslarında yalnızca alt klasörler kullanın. Bu şekilde, kodunuzu güncellemenize gerek kalmadan nesneleri hareket ettirmek daha kolaydır.
@ Benav'ın cevabını genişleterek, tercih ettiğim yaklaşım şudur:
$(SolutionDir)
Ek için Dizinler DahilArtık referans projelerinizden aşağıdaki gibi başlıkları ekleyebilirsiniz:
#include "OtherProject/Header.h"
Notlar:
#include
s için gerekli değildir , ancak muhtemelen isteyeceğiniz doğru derleme bağımlılıklarını ayarlar.