Ubuntu

2012-02-15 20 views
5

'da basit C++ programı derlenemiyor Terminalde basit bir program oluşturmaya çalıştım.Ubuntu

/usr/include/features.h:323:26: error: bits/predefs.h: No such file or directory 
/usr/include/features.h:356:25: error: sys/cdefs.h: No such file or directory 
/usr/include/features.h:388:23: error: gnu/stubs.h: No such file or directory 
In file included from test.cpp:2: 
/usr/include/stdlib.h:42:29: error: bits/waitflags.h: No such file or directory 
/usr/include/stdlib.h:43:30: error: bits/waitstatus.h: No such file or directory 
/usr/include/stdlib.h:320:49: error: sys/types.h: No such file or directory 
In file included from test.cpp:2: 
/usr/include/stdlib.h:35: error: ‘__BEGIN_DECLS’ does not name a type 
/usr/include/stdlib.h:102: error: expected constructor, destructor, or type conversion before ‘;’ token 
/usr/include/stdlib.h:113: error: ‘__END_NAMESPACE_STD’ does not name a type 
/usr/include/stdlib.h:122: error: expected constructor, destructor, or type conversion before ‘;’ token 
/usr/include/stdlib.h:140: error: expected constructor, destructor, or type conversion before ‘extern’ 
/usr/include/stdlib.h:145: error: expected constructor, destructor, or type conversion before ‘extern’ 
/usr/include/stdlib.h:149: error: expected initializer before ‘__THROW’ 
/usr/include/stdlib.h:152: error: expected initializer before ‘__THROW’ 
/usr/include/stdlib.h:153: error: ‘__END_NAMESPACE_STD’ does not name a type 
/usr/include/stdlib.h:160: error: ‘__END_NAMESPACE_C99’ does not name a type 
/usr/include/stdlib.h:168: error: ‘__END_NAMESPACE_STD’ does not name a type 

liste bu şekilde devam eder:

#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
     printf("TESTING"); 
     return 1; 
} 

ben g ++ -o Test test.cpp

hataları koştu. Birinin bu işi yapmak için yapmadığım şeyi göstermesini umuyorum.

+0

'g ++ --verbose -o test testi.cpp' size ne veriyor? – genpfault

+1

http://ubuntuforums.org/showthread.php?t=1877944 adresinin –

+0

yardımcı olup olmadığını sorunum. Ayrıntılı çıktıyı kontrol ettim ve yolu basitleştirmeye karar verdim. Sadece /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Program şimdi derlenmiş, ancak çalıştırıldığında hiçbir şey çıkmıyor . Bu normal mi? –

cevap

2

ÇÖZÜM: İşi daha önceki bazı girişimler nedeniyle yolum boştu. Temiz bir yol kullanarak:

export PATH= /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

Derlemeden sonra karşılaştığım sorun programın hiçbir sonuç göstermemesiydi. Bunun sebebi, yeni bir Linux kullanıcısı olarak fark etmedim ki, ön sıradaki/ile bir programı çağırmam gerekiyordu. Bu yol da şu şekilde çağrılabilir:

export PATH: $PATH:./ 
+1

[PATH'ın içinde '.' Olması çok tehlikeli olabilir.] (Https: //unix.stackexchange.com/questions/65700/add-to-my-path-how-come-it-it-it) –

4

Kodunuz benim için aynı platformda çalışır.

Hata iletileri C hataları gibi görünüyor. Belki de C++ başlıklarını kullanmak yardımcı olacaktır.

#include <cstdio> 
#include <cstdlib> 

int main(int argc, char *argv[]) { 
    printf("TESTING"); 
    return 0; 
} 

Bazı garip takma adlarınız da olabilir. Bazen insanlar gcc'yi yanlış bir şekilde bir alias olarak ayarlar.

[email protected]:~$ set | grep g++ 

[email protected]:~$ alias grep 
alias grep='grep --color=auto' 

[email protected]:~$ alias g++ 
bash: alias: g++: not found 

[email protected]:~$ which g++ 
/usr/bin/g++ 

[email protected]:~$ ll `which g++` 
lrwxrwxrwx 1 root root 7 2011-08-14 02:17 /usr/bin/g++ -> g++-4.6* 

[email protected]:~$ g++ --version 
g++ (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1 
Copyright (C) 2011 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

ben kurulum ubuntu benim dev ortamı nasıl budur:

sudo apt-get install build-essential 

Bu Knitty cesur detayları bilmek gerek kalmadan tüm standart C++ kütüphaneleri kurar.

+0

Teşekkür ederim, ben –

3

Buna çok benzer bir sorun yaşıyordum. Benim için çözelti daha sonra bu dosyaları temizlemek ve etmekti

/usr/include/x86_64-linux-gnu/sys$ cat * | grep "Input/outpu error" 
cat: ioctl.h: Input/output error 
cat: types.h: Input/output error 

bunları yeniden yükleyin: Benim durumumda sorunu ben onları görüntülemeye çalışıyor kanıtladığı gibi bazı bozuk başlık dosyaları vardı.

sudo apt-get purge libc6-dev 
sudo apt-get install libc6-dev 
+1

Ayrıca 'aptitude yeniden yükle' kullanarak paketleri yeniden yükleyebilirsiniz. – tmandry

+1

Birisi "aptitude" yüklü değilse: 'sudo apt-get install --reinstall libc6-dev' de çalışır. – ElmoVanKielmo

+0

apt-get purge, daha önce yüklemiş olduğum her şeyi kaldırdı. Hepsini yeniden kurmak zorunda olmanın sıkıntısından geçiyorum. – user3124361