Saya tidak ingin membahas tentang C ++ atau bahasa pemrograman apa pun! Saya hanya ingin tahu apa yang saya lakukan salah dengan linux ubuntu tentang kompilasi helloworld.cpp!
Saya belajar C ++ jadi langkah saya adalah:
buka hello.cpp dalam vim dan tulis ini
#include <iostream.h>
int main()
{
cout << "Hello World!\n";`
return 0;
}
Jadi, setelah itu saya coba di terminal ini
g++ hello.cpp
DAN outputnya
hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.
Apa yang Anda sarankan? Adakah panduan langkah demi langkah yang bermanfaat bagi saya? Terima kasih!
g++
di Ubuntu) jangan menerimanya.Jawaban:
Anda harus menggunakan
#include <iostream>
, bukaniostream.h
; yang h bentuk sangat tua dan usang sejak tahun.Anda dapat membaca lebih dari yang mungkin ingin Anda ketahui di formulir .h vs non- .h di sini: http://members.gamedev.net/sicrane/articles/iostream.html
(Plus, Anda harus menulis
std::cout
atau memiliki barisusing namespace std;
kalau tidak kesalahan Anda berikutnya adalah tentang kompiler tidak menemukan definisi untukcout
.)sumber
iostream.h
di sistem saya. Sebenarnya, file header C ++ diinstal oleh libstdc ++ - dev , yang diperlukan oleh paket kompilasi C ++ g ++ , yang pada gilirannya diperlukan oleh build-essential . Jadi, tidak, Anda tidak perlu build-essential untuk mengkompilasi program C ++ sederhana; menginstalg++
paket sudah cukup.cout
bekerja tanpastd::
awalan,using std::cout;
lebih disukaiusing namespace std;
. Bahkan beberapausing
pernyataan (tanpanamespace
) umumnya lebih baik, karena Anda tidak membawa pengidentifikasi daristd
namespace yang tidak Anda inginkan dan mungkin bertentangan dengan nama-nama dalam program Anda sendiri.Anda harus berubah
iostream.h
menjadiiostream
. Saya juga mendapatkan kesalahan yang sama seperti yang Anda dapatkan, tetapi ketika saya berubahiostream.h
menjadi hanyaiostream
, itu berfungsi dengan baik. Mungkin itu akan berhasil untuk Anda juga.Dengan kata lain, ubah baris yang mengatakan:
Buatlah ini mengatakan ini sebagai gantinya:
File header pustaka standar C ++, sebagaimana didefinisikan dalam standar, tidak memiliki
.h
ekstensi.Seperti yang disebutkan jawaban Riccardo Murri , Anda juga perlu memanggil
cout
nama lengkapnyastd::cout
, atau memiliki salah satu dari dua baris ini (lebih disukai di bawah#include
arahan Anda tetapi di atas kode Anda yang lain):Cara kedua dianggap lebih disukai, terutama untuk proyek pemrograman yang serius, karena hanya berpengaruh
std::cout
, daripada membawa semua nama distd
namespace (beberapa di antaranya mungkin berpotensi mengganggu nama yang digunakan dalam program Anda).sumber