2011-10-30 19 views
6

Şu sorularım var: Bir uygulama oluşturmak için bir görev verdim. Bir hazır dosya counter.h ve başka bir dosya vardı - counter.obj. Tezgahta sadece fonksiyonların beyanları vardı çıktı. Nasıl derleme .ppp dosya içine .obj dosyası ekleyebilirim? Microsoft Visual Studio 2010 kullanıyorum - ve dosyanın kendisi hangi klasörde olmalıdır?.obj dosyaları projeye nasıl dahil edilir

cevap

11

Nesne dosyasını cpp-dosyalarıyla yaptığınız gibi Çözüm'e ekleyin (genellikle bunu sürükle-bırak yöntemiyle yapın, yani dosyayı Windows Gezgini'nden sürükleyin ve bir projeye Çözüm Exporer penceresi).

Nesne dosyasını cpp-files ile birlikte ekleyebilirsiniz; gerçekten önemli değil.

+0

Teşekkürler) Bu çok iyi çalıştı! =) –

+0

Bu benim için işe yaramadı. Neden olduğu hakkında hiçbir fikrim yok. – Owl

+0

@Owl Bunun hakkında bir soru sormalısınız. Tam durumunuzu, denediğiniz şeyi ve nasıl başarısız olduğunu açıkladığınızdan emin olun. – anatolyg

4

Nesne dosyasını bir cpp dosyasına dahil edemezsiniz.
Derleyici, cpp dosyasını derler ve her cpp dosyası için obj dosyalarını oluşturur, bu dosyalar bir libray veya yürütülebilir dosya oluşturmak için birlikte bağlanır.

Genellikle, kütüphaneleri (.lib veya .dll) bir Uygulamaya bağlarsınız, Bunların sizinle olup olmadığını kontrol edin.

Değilse,

Sen tarafından uygulamanıza nesne dosyası bağlama deneyebilirsiniz: nesneye file.Keep adını ekleyin Eğer "Additional Include Directories" alacak "C/C++" onların düğümünü seçin "Property Page" den sonra özelliklerini yansıtmak
git Kendi kaynak kodunuzun bulunduğu dizinde veya dizini şu dizinden ekleyebilirsiniz:
Tools->Options->Projects and Solutions->VC++Directories.

Yıllar önce akademik projeler dışında ikinci yöntemi denemedim, Bu yüzden emin değilim, Lütfen MSDN'deki bilgileri kontrol edin.

+0

Ancak, Counter.h sınıfında yalnızca Sayaç beyanı var, ancak işlevinin tanımı yok ise ne yapmalıyım? Öğretmen bana ek olarak Counter.obj'u verdi - programı nasıl başlatabilirim - gerçekten sınıfın uygulanışını bilmem gerekmiyor, fakat derlemem için cpp'ye ihtiyacım var - ve Derleyici şunu veriyor: hata LNK2019: çözümlenmemiş harici sembol "public: __thiscall Sayaç :: Sayaç (int) "(?? 0Counter @@ QAE @ H @ Z) işlevinde başvurulan _main –

+0

@ArtemMoskalev: Bu bir ** Bağlayıcı hatasıdır ** çünkü linker, işlevin tanımını bulamadı. nesne dosyasında, cevabımda güncellediğim yöntemi deneyin. –

+0

ölümcül hata LNK1120: 1 çözülmemiş externals - hala bu onu bulamaz! Belki de mustake, dosyaya giden yolu nasıl gösterir? Ben main.cpp ve linker yazdığı dizinin içine koydu: counter.obj –

İlgili konular