Üçüncü taraf kitaplığı kullanarak bazı çalışmalara başlıyorum ve Visual Studio 2010'da oluştururken, birçok kez bu bağlayıcı uyarısı aldığımı fark ettim (LNK4221). Bağlanan nesne dosyalarını oluştururken kullanılan kaynaklara baktım ve bunların tüm uygulamalarının başlık dosyalarında bulunduğunu tespit ettim. İlginç bir şekilde, projenin, uygulama ile birlikte başlık için sadece #include içeren karşılık gelen .cpp dosyalarını içerdiğini fark ettim.Sadece bir #include içeren bir .cpp dosyasının noktası nedir?
Merak ediyorum - bunun amacı nedir ve neden bu tekniği kullanmak istiyorum? .cpp dosyaları projeye herhangi bir değer eklemiyorsa, neden bağlayıcı uyarılardan kurtulmak için onları kaldırmamam gerekir?
Benzer sorular aramayı denedim, ancak ilgi çekici bir şey bulamadım. Herhangi birini biliyorsanız, lütfen onları bağlayın.
Bu bir uyarıdır, bir hata değil. –
Evet, biliyorum. Uyarı hakkında sadece bir tek #include içeren .cpp dosyaları kullanma tekniğinden daha az endişeliyim. –
İki olası motivasyon: 1 - Her zaman .h'/'.cpp' çiftlerine sahip olmak için iyi bir uygulama sayılabilir. Belki de yazar, daha sonra .cpp'ye ekleyebileceklerini düşündü. 2 - Bir '.h' dosyası bir nesne dosyasına derlenemez, bir' .cpp' dosyası olabilir. – BoBTFish