İlkinden sonra C veya C ++ derleme hatalarını okuyor musunuz?


19

C ve C ++ derleyicilerinin neden hatalardan kurtulmaya ve ayrıştırmaya devam etmeye çalıştıklarını hiç anlamadım. Neredeyse her zaman, ilk hata ilk hata giderilir gider kaybolacak bir sahte hatalar akışı oluşturur. Birkaç yıllık deneyimden sonra, her dosyanın ilkinden başka herhangi bir hataya bakmayı bıraktım. Derleyiciyi yeniden çalıştırın ve başka hata kalmayana kadar bunu tekrar yapın. Ortak bir uygulama mı?


Sanırım sadece ilkini okudum, ama bin milyon kaynak dosya çözümü ile çalışmıyorum, bu yüzden yardımcı oluyor.
Kodlayıcı

Yanıtlar:


19

Bazen hatalar ilgisizdir. Daha kolay hataların bir listesine bakmak ve ilgili hataların bir dizi ana nedenini saptamak, ardından sonraki düzeltmek için bulmak un lı hatası. Proje büyükse ve inşa edilmesi biraz zaman alıyorsa, bu şekilde çalışmayı ilk hatayı düzeltmek, yeniden derlemek, tekrarlamaktan daha az sinir bozucu buluyorum ...


3
+1: Dikkat edin, eğer proje büyükse ve inşa edilmesi biraz zaman alıyorsa, derlemeler arasında çok fazla değişiklik yapmamanız akıllıca olur, böylece ortaya koyduğunuz problemleri nispeten kolayca bulabilirsiniz.
Donal Fellows

Derleme sürenizin çok uzun olması durumunda, diğer ilgisiz hataları aramak yararlı olabilir, ancak bu uzun artımlı yapılara neden olan bağımlılık sorunlarını düzeltmeyi tercih ederim ...
alexk7

8

Derleme süresine bağlıdır . Örneğin, tüm projenin yeniden oluşturulmasını tetikleyecek bir ana başlığı değiştirdiğimi biliyorsanız, kesinlikle hata yığınının geri kalanına daha yakından bakacağım ve bazılarını düzeltip düzeltemeyeceğimi göreceğim. Derleyici çalışırken kahve yapmak için ayağa kalktığımda bana daha iyi bir his veriyor.


4

Evet aynısını yapıyorum, derleyiciyi refactor'a yardım etmek için kullanmıyorum, bu durumda hataların tam listesini beğeniyorum :)


Modern IDE'lerin çoğunun bir düğmeyi tıklatarak yeniden düzenleme araçları vardır, bu nedenle bu tür araçlarla erişiminiz ve yetenekleriniz varsa yeniden derleyiciye göre yeniden düzenleme hatası gerekmez. Bunu tercih etmedikçe ...
FrustratedWithFormsDesigner

1
Evet ama birincil çalışmam IDE VS'nin C ++ için hiçbiri yok :( Bir araç olmadığında bir yol bulacağım!
Stephen Bailey

1
Tam Domates'den Visual Assist X, C ++ için VS'ye yeniden düzenleme ekler.
stonemetal

4

Hat sayısında bir boşluk varsa, derleyici muhtemelen vermedi kurtarmak ve daha sonra başka bir hata buldu.

Genellikle her grupta yalnızca bir hatayı düzeltmeye çalışın.


1

Daha iyi derleyiciler, daha iyi sonuçlar üretecek ve ilkinden sonra daha yararlı hatalar verecektir, genellikle hataların bir tür otomatik düzeltilmesi yoluyla, muhtemelen iyi kodun en azından kontrol edilebilmesi için. Ama sonra, sözdizimi yazım hatalarının anında algılandığı ve kolayca düzeltildiği Java'da, Eclipse'de çalışmaya alışkınım ve diğer derleyici hataları derleyicinin kurtarılması için daha çeşitli ve daha kolay olma eğilimindedir. Sadece Microsoft'un IDE ve C ++ veya C # diğerlerinde çalışırken benzer olduğunu varsayabiliriz.


0

Evet - ya da en azından onları gözden kaçırıyorum. Hataların ilişkili olup olmadığını anlamak oldukça kolaydır (genellikle satır numarasına bakmak yeterlidir) ve hepsini bir geçişte düzeltmeyi ve sonra yeniden derlemeyi seviyorum.


0

Ben sadece 1 cpp derleme çok uzunsa (ilki geçmiş hataları okumak için) bunu. Veya mevcut değil. Sonra derleyici hatalarında ilk hata ile ilgisi olmayan her şeyi düzelttiğimden emin olmayı tercih ederim.

Cpp dosyanız tek başına derlenebilir ve bir saniyeden daha kısa sürede (veya derleme başlamadan önce bir "intellisense" işaretleme hatalarınız varsa) çoğu zaman bunu yapmak zorunda değilsiniz.

Şu anda tek bir cpp tek başına derleyemediğim bir proje üzerinde çalışıyorum (ve yapı sisteminde elim yok, bu yüzden O__o'yu değiştiremiyorum) ve bazı cpp dosyalarının derlenmesi on dakikadan fazla sürebilir ( Bunu azaltmak için çok çaba harcadıktan sonra bile, orijinal derleme süresinin yalnızca% 50'sine kadar kesiyoruz ...).

Bu tür çok uzun derleme kurulumunda, "yapı" yı vurmadan önce çok düşünmeye eğilimlisiniz ve hatta daha sonra düşünün, derleyiciden önce hataları bulmak için belki onlardan zihinsel olarak almak için kesinlikle daha hızlısınız. .


-1

Sizin gibi yapmak oldukça yaygın. Genellikle stajyerlere veya acemi programcılara hata sayısı nedeniyle bunalmış olanları söylerim. Büyük olasılıkla düzeltilmesi gereken gerçek bir hatadır ve bir öncekinin neden olduğu yanıltıcı bir hayalet hatası değildir. Bazı (en çok?) Derleyiciler bu nedenle ilk hatadan sonra derlemeyi durdurma seçeneğine sahiptir. Derleme sistemleri genellikle hataları olan ilk dosyadan sonra duracak şekilde yapılandırılabilir.

Ancak, hataları tespit ettikten sonra da derlemeye devam etmenin nedenleri vardır. Örneğin, kaç dosyada hata olduğunu saymak veya eklenen bir başlık dosyasının birden fazla dosyada hatalara neden olup olmadığını görmek isteyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.