‘cout’ n'est pas un membre de ‘std’ & ‘cout’ n'a pas été déclarée dans ce champ d'application
Je me rends compte qu'il y a plusieurs doublons comme ça, mais aucun d'eux n'a fonctionné pour moi jusqu'à présent.
Je suis en train de compiler en C++ programme très simple sur Ubuntu à l'aide de g++, mais il me donne de l'étendue des erreurs.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world";
}
Cela me donne cette erreur:
sudo g++ -v test.c
test.c: In function ‘int main()’:
test.c:7:3: error: ‘cout’ was not declared in this scope
J'ai aussi essayé de définir la portée que de nombreux autres postes de dire, mais qui ne fonctionne pas, mais m'a donné une autre erreur:
#include <iostream>
int main()
{
std::cout << "Hello world";
}
Donne une erreur:
test.c: In function ‘int main()’:
test.c:6:3: error: ‘cout’ is not a member of ‘std’
La plupart des suggestions en ligne suggèrent "using namespace std;", "#include " et "std::cout".
J'ai donc essayé tous les 3 ensemble, toujours pas de chance 🙁
#include <iostream>
using namespace std;
int main()
{
std::cout << "Hello world";
}
donne une erreur:
test.c: In function ‘int main()’:
test.c:7:3: error: ‘cout’ is not a member of ‘std’
Je suis passé par plusieurs forums en ligne, mais aucun d'entre eux semblent fonctionner pour moi 🙁
Cette est une partie d'un problème plus large en raison de laquelle un de mes linux faire ne fonctionne pas.
Btw, j'utilise g++ et pas de gcc que quelques postes foiré.
EDIT 1:
J'ai changé le nom .rpc, et de l'exécuter sans sudo. Voici les résultats détaillés:
pranoy@pranoyubuntu1210:~/Desktop/SIP/SIPp/sipp-3.3$ g++ -v test.cpp -o test
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/--enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
COLLECT_GCC_OPTIONS='-v' '-o' 'test' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.7/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE test.cpp -quiet -dumpbase test.cpp -mtune=generic -march=x86-64 -auxbase test -version -fstack-protector -o /tmp/cczzibvL.s
GNU C++ (Ubuntu/Linaro 4.7.2-2ubuntu1) version 4.7.2 (x86_64-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.7
/usr/include/c++/4.7/x86_64-linux-gnu
/usr/include/c++/4.7/backward
/usr/lib/gcc/x86_64-linux-gnu/4.7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C++ (Ubuntu/Linaro 4.7.2-2ubuntu1) version 4.7.2 (x86_64-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 521527ea42f0901bf839bcaad0cb13e6
test.cpp: In function ‘int main()’:
test.cpp:5:3: error: ‘cout’ is not a member of ‘std’
sudo
pour exécuter g++? et de l'extension de fichier doit être .cpp
au lieu de .c
?Renommer votre fichier source à la fin, avec
.cpp
pour donner g++
le droit d'indices.Ne peuvent pas se reproduire...
Vous n'avez pas besoin
using namespace std
et c'est une mauvaise suggestion de toute façon.J'ai été à l'origine à l'aide de rpc à la place, mais qui ont aussi la cause exacte. Il suffit de double vérifié. Malheureusement, pas de chance sudo était juste une autre tentative boiteuse de ma part, la suppression sudo a encore de la même question. Je suis fou de joie après ce! cela pourrait-il être un problème avec mon compilateur lui-même?
OriginalL'auteur Pranoy C | 2013-03-12
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez écrit fonctionne très bien sur mon système Ubuntu, avec la même version de g++.
Il semble que vous n'avez pas installé tous les fichiers nécessaires pour l'environnement C++, ou quelque chose n'est pas tout à fait droit. Essayez ceci:
(Exécuter
dpkg -l | grep libstdc++
pour obtenir la version exacte de libstdc++ si le ci-dessus ne)libstdc++-dev
paquet, dans le cas où les fichiers à inclure sont foiré (ne peut pas vérifier la bonne version, mais il devrait être quelque chose commelibstdc++6-4.7-dev
)Je vais ajouter un edit, merci.
Je l'ai installé comme une partie de l'build-essential aussi loin que je me souvienne. Je vais essayer de le réinstaller à l'aide de vos commandes et de voir si cela fonctionne. Merci à vous deux pour l'aide pour l'instant! 🙂
Il a travaillé!! Maintenant, je peux utiliser mon code! Quelque chose a été mseed en place lors de l'installation de g++. Au lieu de supprimer, j'ai purgé pour supprimer tous les fichiers. Puis le réinstallé. 'sudo apt-get purge g++ libstdc++6-4.7-dev' de 'sudo apt-get install build-essential g++-multilib" Vous êtes les meilleurs! 🙂 Merci!
OriginalL'auteur teppic
Ce n'est pas le cas pour le présent, mais peut être une réponse à "erreur:" cout " n'est pas un membre de ‘std’". Je suis venu ici à la recherche de l'aide, si cela peut aider quelqu'un d'autre.
Si vous avez un fichier d'en-tête (header.h) lorsque le dernier de la fonction/déclaration de la classe n'ont pas de point-virgule après:
Et votre fichier c++ comprend ce avant
iostream
:La fonction/classe (
function
dans ce cas) bousille les déclarationsiostream
.#include
fondamentalement juste colle le texte dans le code. En ajoutant le point-virgule peut résoudre le problème.Espère que aidé quelqu'un. Je pense que @Farhad a pris le problème dans cette question de bien.
OriginalL'auteur superbriggs
Renommer l'extension de fichier .rpc . Complie code source par la commande gcc source.cpp -o output.. GCC mettra automatiquement compiler un programme C++.
OriginalL'auteur Ekramul Hoque
Pour les programmes C++, utiliser g++, pas de gcc. Si vous obtenez des erreurs qui indiquent votre compilateur ne trouve pas la bibliothèque standard, c'est parce que vous avez probablement utilisé gcc.
OriginalL'auteur Ankit Jain
(C++, Linux Terminal, pas d'erreur de compilation, mais pas imprimés dans le Terminal), peut-être essayer:
première ligne: g++ compile le code.
deuxième ligne: exécute votre code compilé.
OriginalL'auteur Arthur Zennig