Question

J'ai essayé de construire un programme simple dans le terminal.

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

J'ai couru g ++ test.cpp test -o

Les erreurs:

/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

La liste continue de cette façon. Im espérant que quelqu'un peut signaler ce que je ne l'ai pas fait pour faire ce travail.

Était-ce utile?

La solution 3

SOLUTION: Mon chemin était vide en raison de certaines tentatives antérieures à le faire fonctionner. J'ai créé un chemin propre à l'aide:

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

Mon problème après la compilation était que le programme ne montre aucun résultat. Cela est dû au fait qu'en tant que nouvel utilisateur de linux je na pas rendu compte que je devais appeler un programme avec ./ devant. Cela peut être réglé dans le chemin et en appelant:

export PATH: $PATH:./

Autres conseils

Votre code fonctionne pour moi avec la même plate-forme.

Les messages d'erreur ressemblent à des erreurs C. Peut-être en utilisant les en-têtes C ++ vous aidera.

#include <cstdio>
#include <cstdlib>

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

Vous pouvez aussi avoir des alias étranges. Parfois, les gens gcc de configuration comme un alias pour g ++ de manière incorrecte.

tom@flim:~$ set | grep g++

tom@flim:~$ alias grep
alias grep='grep --color=auto'

tom@flim:~$ alias g++
bash: alias: g++: not found

tom@flim:~$ which g++
/usr/bin/g++

tom@flim:~$ ll `which g++`
lrwxrwxrwx 1 root root 7 2011-08-14 02:17 /usr/bin/g++ -> g++-4.6*

tom@flim:~$ 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.

Voici comment configurer mon environnement de dev dans ubuntu:

sudo apt-get install build-essential

Ceci met en place tous les C ++ standard bibliothèques sans avoir besoin de connaître les détails de Nitty knitty.

J'avais une question très semblable à cela. Dans mon cas, la question était que j'avais des fichiers d'en-tête corrompus comme en témoigne en essayant de les voir:

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

La solution pour moi était de purger ces fichiers, puis les ré-installer.

sudo apt-get purge libc6-dev
sudo apt-get install libc6-dev
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top