Eclipse CDT'nin Linux GCC araç zincirinin C ++ standart kütüphane başlıklarını çözmesi nasıl sağlanır?


12

Ubuntu 12.04 LTS'de Eclipse CDT eklentisini yükledim ve her şeyi test etmek için yeni merhaba dünya projesini açtım. Projeyi oluştururken tek araç zincirini seçtim: "Linux GCC"

Ancak proje oluşturulduğunda şöyle diyor:

#include<iostream>
#include<cstdlb>

çözülmedi. Böylece, birlikte hatlar coutve endlkullanılamaz ve bulamıyorum std.

using namespace std; aynı zamanda sorunlara neden oluyor.

#includeAd stdalanını kullanarak kodu desteklemek için standart kitaplık üstbilgileriyle ilgili yönergelerimi nasıl tanıyabilirim ?


Bu hatalar yapmanız sonra bile devam mı Project> Build All?
Eliah Kagan

2
Bu aptalca bir soru olabilir, ancak C projesi yerine özellikle C ++ projesi olarak yeni bir proje oluşturdunuz mu?
bazz

Yanıtlar:


4

Yaptığım aynı sorunu yaşadıysanız, projenizin derlendiğinden şüpheleniyorum ancak kod tamamlama / kod vurgulama başarısız oluyor? Yararlı olabilecek bazı notlar buldum. İşte yaptım:

  • Projesi> Özellikler

  • C / C ++ Genel

  • Yollar ve Semboller

  • uygun dili seç

  • "Ekle" yi tıklayın ve derleyici sürümüne özgü dizinleri ekleyin

'GNU C ++' dili için ekledim:

  /usr/include
  /usr/include/c++/4.6
  /usr/include/c++/4.6/bits
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits
  /usr/include/c++/4.6/debug
  /usr/include/c++/4.6/i686-linux-gnu
  /usr/include/c++/4.6/i686-linux-gnu/bits

"GNU C" için ekledim:

  /usr/include
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits

TBH, yukarıdaki tüm dizinlerin gerçekten gerekli olduğunu düşünmüyorum (muhtemelen 'bit' dizinlerini kaldırabilirsiniz) ama yukarıdaki liste o zaman benim için çalıştı.

Şimdi eclipse.org'dan Eclipse Indigo (sürüm 3.7.2) kullanıyorum ve otomatik olarak doğru içerme dizinlerini bulur ve ekler. Liste benim için farklı:

/usr/include/c++/4.6
/usr/include/c++/4.6/i686-linux-gnu
/usr/include/c++/4.6/backward
/usr/lib/gcc/i686-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
/usr/include/i386-linux-gnu
/usr/include

Açıkçası, yalnızca sisteminizde mevcut olan dahil etme dizinlerini ekleyin ;-)


Aslında benim için işe yaramıyor - aslında Debian Stretch 64-bit'te olmama rağmen. Ancak önerilerinizi platformuma uyarladım.
einpoklum
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.