Bagaimana cara membuat toolchain Eclipse Linux GCC Linux mengatasi header perpustakaan C ++ standar?

12

Di Ubuntu 12.04 LTS saya menginstal plugin Eclipse CDT dan membuka proyek hello world baru untuk menguji semuanya. Ketika saya sedang membuat proyek, saya memilih satu-satunya toolchain: "Linux GCC"

Namun ketika proyek itu dibuat, dikatakan demikian

#include<iostream>
#include<cstdlb>

tidak terselesaikan. Dengan demikian, baris dengan coutdan endltidak dapat digunakan dan tidak dapat ditemukan std.

using namespace std; juga menyebabkan masalah.

Bagaimana saya bisa mendapatkan #includearahan saya untuk header perpustakaan standar dikenali, untuk mendukung kode menggunakan stdnamespace?

Muhammad Khan
sumber
Apakah kesalahan ini tetap ada bahkan setelah Anda melakukannya Project> Build All?
Eliah Kagan
2
Mayne ini pertanyaan bodoh, tetapi apakah Anda membuat proyek baru secara khusus sebagai proyek C ++ daripada proyek C?
bazz

Jawaban:

4

Jika Anda memiliki masalah yang sama dengan yang saya lakukan, saya menduga bahwa proyek Anda dibuat tetapi penyempurnaan kode / penyorotan kode gagal? Saya baru saja menemukan beberapa catatan yang mungkin berguna. Inilah yang saya lakukan:

  • Project-> Properties

  • C / C ++ Umum

  • Jalan dan Simbol

  • pilih bahasa yang sesuai

  • Klik "Tambah" dan tambahkan direktori spesifik versi-kompiler

Untuk bahasa 'GNU C ++' saya menambahkan:

  /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

Untuk "GNU C" saya menambahkan:

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

TBH, saya tidak berpikir semua direktori di atas benar-benar diperlukan (Anda mungkin bisa menghapus direktori 'bit') tetapi daftar di atas berfungsi untuk saya saat itu.

Saya sekarang menggunakan Eclipse Indigo (versi 3.7.2) dari eclipse.org dan secara otomatis menemukan dan menambahkan direktori include yang benar. Daftarnya berbeda untuk saya:

/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

Jelas, hanya tambahkan direktori sertakan yang sebenarnya ada di sistem Anda ;-)

jamesodhunt
sumber
Yah, ini tidak berhasil untuk saya - meskipun saya sebenarnya menggunakan Debian Stretch 64-bit. Tapi saya memang menyesuaikan saran Anda dengan platform saya.
einpoklum