NetBeans i C++ kompletnie zielony:)

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
mardul
Sędziwy Jeż
Sędziwy Jeż
Posty: 37
Rejestracja: 30 paź 2008, 12:25
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

NetBeans i C++ kompletnie zielony:)

Post autor: mardul »

Witam, kiedyś w szkole uczyłem się programować w c++ lecz za wiele z tego nie pozostało mi w głowię;/ teraz przesiadłem się na Ubuntu zainstalowałem NetBeans'a i nie bardzo potrafię się odnaleźć w tym programie. Gdy utworzyłem nowy projekt i w tym projekcie nowy plik c++ wpisałem jak na początku poradnika pierwszy program tzn:
#include <stdlib.h>
#include <iostream.h>

int main(int argc, char** argv) {
cout << "Hello World/n";
return 0;
}
kompilator wywala mi błędy, i podkreśla mi biblioteki jak by ich nie było...
Running "/usr/bin/make -f Makefile CONF=Debug" in /home/mario/NetBeansProjects/nowa

/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
make[1]: Wejście do katalogu `/home/mario/NetBeansProjects/nowa'
/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/nowa
make[2]: Wejście do katalogu `/home/mario/NetBeansProjects/nowa'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/newmain.o.d
gcc -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/newmain.o.d -o build/Debug/GNU-Linux-x86/newmain.o newmain.cpp
In file included from /usr/include/c++/4.2/backward/iostream.h:31,
from newmain.cpp:9:
/usr/include/c++/4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
newmain.cpp: In function `int main(int, char**),:
newmain.cpp:15: błąd: expected primary-expression before `:, token
newmain.cpp:15: błąd: expected `;' before `:, token
make[2]: *** [build/Debug/GNU-Linux-x86/newmain.o] Błąd 1
make[2]: Opuszczenie katalogu `/home/mario/NetBeansProjects/nowa'
make[1]: *** [.build-conf] Błąd 2
make[1]: Opuszczenie katalogu `/home/mario/NetBeansProjects/nowa'
make: *** [.build-impl] Błąd 2

Build failed. Exit value 2.
proszę o pomoc lub jakiś poradnik jak się odnaleźć w tym programie:) z c++ już wtedy sobie poradzę:)
adrian5632
Przyjaciel
Przyjaciel
Posty: 259
Rejestracja: 17 gru 2006, 16:07
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: adrian5632 »

Kod: Zaznacz cały

#include <stdlib.h>
#include <iostream>  //w C++ iostream bez .h

using namespace std; //jeśli chcesz używać cout bezpośrednio

int main(int argc, char** argv) {
    cout << "Hello World\n"; // nie /n
    return 0;
}
Używaj wcięć, bo kod jest bez nich okropnie nieczytelny...
I czytaj, co ci wypisuje kompilator.
[IMG]http://www.ubudsl.com/media/UbuDSL.png[/IMG]
Masz problem z UbuDSL? Nie zapomnij wygenerować i załączyć loga do postu!
Awatar użytkownika
Jusko
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1380
Rejestracja: 21 gru 2007, 18:51
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Poznań
Kontakt:

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: Jusko »

Nie znam się jeszcze za bardzo na C++ (sam uczę się go od września dopiero na zajęciach, i sam nie wszystko z niego łapie), lecz doprowadziłem kod do działania.

Kod: Zaznacz cały

#include <iostream>

using namespace std; 
int main(int argc, char** argv) 

{
cout << "Hello World";
cout<<endl;
return 0;
} 
Nie jestem w 100% pewien, ale wydaje mi się, że biblioteki jakie chciałeś użyć, są bibliotekami Windows. W Linuksie ich nie ma, przez co nie można ich użyć np. <conio.h> - biblioteka często dołączana pod Windows - w Linuksie jej nie ma. Sam jeszcze nie wiem, czym biblioteki, które używam pod Win na zajęciach, zastąpić pod Ubuntu, ale sprawa z ich dołączaniem tak właśnie wygląda.
mikolajs
Wytworny Kaczor
Wytworny Kaczor
Posty: 352
Rejestracja: 15 paź 2008, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mikolajs »

Pora zmienić poradnik na porządną książkę lub kurs internetowy. Tak się programowało z 10 lat temu, obecnie mamy nowy standard i używa się przestrzeni nazw, co wymusza stosowanie nowych plików nagłówkowych (bez rozszerzenia h np. <cstdlib> zamiast <stdlib.h>) zresztą wszystko jest w komunikacie:
#warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>
Ale naprawdę nie to jest przyczyną błędu kompilatora (to wyżej to tylko ostrzeżenie).
Gdzieś niepotrzebnie umieściłeś : (pewnie zamiast ; ), ale nam dałeś już poprawną wersję :)
Parafrazując Pospieszalskiego "Warto czytać" ;)
mardul
Sędziwy Jeż
Sędziwy Jeż
Posty: 37
Rejestracja: 30 paź 2008, 12:25
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mardul »

przy includach program pokazuje mi wykrzyniki...
#include <cstdlib>
#include <iostream>

using namespace std;

int main() {
cout << "Hello World\n";
return 0;
}
i po kompilacji pojawia się:
Running "/usr/bin/make -f Makefile CONF=Debug" in /home/mario/NetBeansProjects/nowa

/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
make[1]: Wejście do katalogu `/home/mario/NetBeansProjects/nowa'
/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/nowa
make[2]: Wejście do katalogu `/home/mario/NetBeansProjects/nowa'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/newmain.o.d
gcc -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/newmain.o.d -o build/Debug/GNU-Linux-x86/newmain.o newmain.cpp
mkdir -p dist/Debug/GNU-Linux-x86
gcc -o dist/Debug/GNU-Linux-x86/nowa build/Debug/GNU-Linux-x86/newmain.o
build/Debug/GNU-Linux-x86/newmain.o: In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/4.2/bits/locale_facets.tcc:2562: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
/usr/include/c++/4.2/bits/locale_facets.tcc:2571: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
/usr/include/c++/4.2/bits/locale_facets.tcc:2573: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
/usr/include/c++/4.2/bits/locale_facets.tcc:2578: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
build/Debug/GNU-Linux-x86/newmain.o: In function `main':
/home/mario/NetBeansProjects/nowa/newmain.cpp:8: undefined reference to `std::cout'
/home/mario/NetBeansProjects/nowa/newmain.cpp:8: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
build/Debug/GNU-Linux-x86/newmain.o: In function `__static_initialization_and_destruction_0':
/usr/include/c++/4.2/iostream:77: undefined reference to `std::ios_base::Init::Init()'
build/Debug/GNU-Linux-x86/newmain.o: In function `__tcf_0':
/usr/include/c++/4.2/iostream:77: undefined reference to `std::ios_base::Init::~Init()'
build/Debug/GNU-Linux-x86/newmain.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/nowa] Błąd 1
make[2]: Opuszczenie katalogu `/home/mario/NetBeansProjects/nowa'
make[1]: *** [.build-conf] Błąd 2
make[1]: Opuszczenie katalogu `/home/mario/NetBeansProjects/nowa'
make: *** [.build-impl] Błąd 2

Build failed. Exit value 2.
EDIT:
ok już z większością sobie poradziłem lecz ciągle nie wiem jak to zrobić:
newmain.cpp:14: błąd: `cout, was not declared in this scope
a mój program wygląda :
#include <stdlib.h>

using namespace std;

int main() {

cout << "Hello";
return 0;
}
mikolajs
Wytworny Kaczor
Wytworny Kaczor
Posty: 352
Rejestracja: 15 paź 2008, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mikolajs »

A czy przypadkiem nie wybrałeś w NetBeans projektu C zamiast C++?
Spróbuj pierwszy program w ostatnim post'cie skomilować w konsoli poleceniem

Kod: Zaznacz cały

g++ -o nazwaprgramu nazwapliku.cpp 
Program nie linkuje się z biblioteką libstdc++, co wygląda na błąd w samym NetBeans.
Proponuje uczyć się programowania bez jakiegokolwiek IDE, a programy kompilować z konsoli. Bo zamiast uczyć się programować musisz zmagać się z działaniem jakiegoś IDE. Polecam Kate jako edytor z łatwym dostępem do konsoli.
Awatar użytkownika
Szmitas
Zakręcona Traszka
Zakręcona Traszka
Posty: 572
Rejestracja: 28 lis 2006, 17:38
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86
Lokalizacja: Luboń
Kontakt:

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: Szmitas »

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int main()
{
cout << "Hello";
return 0;
} 
Taki kod jest poprawny.
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.

Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
mardul
Sędziwy Jeż
Sędziwy Jeż
Posty: 37
Rejestracja: 30 paź 2008, 12:25
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mardul »

przekopiowałem to do netbeansa i wyskakuje mi:
Running "/usr/bin/make -f Makefile CONF=Debug" in /home/mario/NetBeansProjects/Application_1

/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
make[1]: Wejście do katalogu `/home/mario/NetBeansProjects/Application_1'
/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/application_1
make[2]: Wejście do katalogu `/home/mario/NetBeansProjects/Application_1'
mkdir -p dist/Debug/GNU-Linux-x86
gcc -o dist/Debug/GNU-Linux-x86/application_1 build/Debug/GNU-Linux-x86/newmain.o
build/Debug/GNU-Linux-x86/newmain.o: In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/include/c++/4.2/bits/locale_facets.tcc:2562: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
/usr/include/c++/4.2/bits/locale_facets.tcc:2571: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
/usr/include/c++/4.2/bits/locale_facets.tcc:2573: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
/usr/include/c++/4.2/bits/locale_facets.tcc:2578: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
build/Debug/GNU-Linux-x86/newmain.o: In function `main':
/home/mario/NetBeansProjects/Application_1/newmain.cpp:7: undefined reference to `std::cout'
/home/mario/NetBeansProjects/Application_1/newmain.cpp:7: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
build/Debug/GNU-Linux-x86/newmain.o: In function `__static_initialization_and_destruction_0':
/usr/include/c++/4.2/iostream:77: undefined reference to `std::ios_base::Init::Init()'
build/Debug/GNU-Linux-x86/newmain.o: In function `__tcf_0':
/usr/include/c++/4.2/iostream:77: undefined reference to `std::ios_base::Init::~Init()'
build/Debug/GNU-Linux-x86/newmain.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/application_1] Błąd 1
make[2]: Opuszczenie katalogu `/home/mario/NetBeansProjects/Application_1'
make[1]: *** [.build-conf] Błąd 2
make[1]: Opuszczenie katalogu `/home/mario/NetBeansProjects/Application_1'
make: *** [.build-impl] Błąd 2

Build failed. Exit value 2.
nie wiem co jest nie tak;/

EDIT:
a gdy wydaję polecenie g++ -o newmain.cpp
wyskakuje:
g++: brak plików wejściowych
no właśnie wybrałem netbeansa bo chciałem łatwo sobie kompilować jak pod windowsem a tu tyle roboty:P
do mikolajs: wybrałem właściwy projekt c++
Awatar użytkownika
Szmitas
Zakręcona Traszka
Zakręcona Traszka
Posty: 572
Rejestracja: 28 lis 2006, 17:38
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86
Lokalizacja: Luboń
Kontakt:

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: Szmitas »

A może zrezygnuj z NetBeans?

Ja osobiście pracuję w edytorze gedit + kompilacja w konsoli. To naprawdę prosta sprawa.
http://www.ubuntu-pomoc.org/cc-programo ... terminalu/
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.

Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
lyrix
Piegowaty Guziec
Piegowaty Guziec
Posty: 14
Rejestracja: 03 lip 2008, 15:11
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: lyrix »

Można pisać i kompilować programy w C++ bez bezpośredniego obcowania z konsolą, używając zwykłego Gedita tylko. Aby kompilować programy bezposrednio z Gedita, trzeba uaktywnic wtyczkę Narzędzia Zewnętrzne (Edycja->Preferencje->Wtyczki), a następnie stworzyć nowe Narzędzie Zewnętrzne (pod nazwą np. Kompiluj C++). Jak to zrobić, opisałem tutaj: http://www.ubuntu.pl/forum/viewtopic.php?t=86458

pozdrawiam
mardul
Sędziwy Jeż
Sędziwy Jeż
Posty: 37
Rejestracja: 30 paź 2008, 12:25
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mardul »

oki ale jednak chciałbym znależć przyczynę tego... bo wiem że program działa poprawnie bo sprawdziłem ten sam pod windowsem w devc++ i było wszystko oki, więc może standardowo netbeans nie ma bibliotek potrzebnych do kompilacji porogramu?? i może jakoś trzeba je dodać lub coś? netbeansa ściągałem ze strony producenta i ściągałem pod c++ więc powinno być dobrze a nie jest... i wydaje mi się że problem tkwi w tych właśnie bibliotekach bo przy nich pokazuje się wykrzyknik
lyrix
Piegowaty Guziec
Piegowaty Guziec
Posty: 14
Rejestracja: 03 lip 2008, 15:11
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: lyrix »

Zainstaluj sobie libstdc++ i potem spróbuj skompilować. Bibliotekę znajdziesz tutaj:

http://packages.debian.org/testing/libs/libstdc++6
mikolajs
Wytworny Kaczor
Wytworny Kaczor
Posty: 352
Rejestracja: 15 paź 2008, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mikolajs »

a gdy wydaję polecenie g++ -o newmain.cpp
wyskakuje:
zobacz jeszcze raz jak powinno wyglądać polecenie! I wpisujesz je będąc w katalogu z plikiem źródłowym.
Awatar użytkownika
Kastagir
Sędziwy Jeż
Sędziwy Jeż
Posty: 89
Rejestracja: 09 sty 2006, 16:36
Płeć: Mężczyzna
Wersja Ubuntu: 17.04
Środowisko graficzne: Inne
Architektura: x86_64

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: Kastagir »

mardul pisze:oki ale jednak chciałbym znależć przyczynę tego... bo wiem że program działa poprawnie bo sprawdziłem ten sam pod windowsem w devc++ i było wszystko oki, więc może standardowo netbeans nie ma bibliotek potrzebnych do kompilacji porogramu?? i może jakoś trzeba je dodać lub coś? netbeansa ściągałem ze strony producenta i ściągałem pod c++ więc powinno być dobrze a nie jest... i wydaje mi się że problem tkwi w tych właśnie bibliotekach bo przy nich pokazuje się wykrzyknik
przyczyna jest taka, że używasz gcc zamiast g++
"Search you should use, my young padawan"
mardul
Sędziwy Jeż
Sędziwy Jeż
Posty: 37
Rejestracja: 30 paź 2008, 12:25
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mardul »

Kastagir pisze:przyczyna jest taka, że używasz gcc zamiast g++
a jak to zmienić?
kamil4521
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 16 lut 2008, 20:07
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: kamil4521 »

Aby skonfigurować w NetBeans'ie kompilator g++, musisz wejść do menu: Tools->Options, a tam wybrać "zakładkę" C/C++ a w niej zakładkę Build Tools. W polu C++ Compiler wpisz ścieżkę do kompilatora g++. Jeśli nie wiesz gdzie on się znajduje to w konsoli wpisz: which g++ i przepisz tą ścieżkę (przeważnie: /usr/bin/g++).

Aby poprawnie się to kompilowało, zawsze dodawaj do projektu nowe pliki z kategorii C++ Files (File->New File), są one zawsze zapisywane z rozszerzeniem cpp, cxx lub podobnym (domyślnie skojarzone z g++).

MUSI SIĘ KOMPILOWAĆ!!!!!
mardul
Sędziwy Jeż
Sędziwy Jeż
Posty: 37
Rejestracja: 30 paź 2008, 12:25
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mardul »

zmieniłem na g++ i teraz przy kompilacji pokazuję, że:
C++ Compiler is missing or invalid
Marcin D
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 15 lis 2008, 16:38
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: Marcin D »

A masz ten kompilator zainstalowany?
mikolajs
Wytworny Kaczor
Wytworny Kaczor
Posty: 352
Rejestracja: 15 paź 2008, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: mikolajs »

A masz ten kompilator zainstalowany?
Ma bo:
a gdy wydaję polecenie g++ -o newmain.cpp
wyskakuje: g++: brak plików wejściowych
To napewno kwestia ustawienia netbeans, tylko jak gość nie potrafi skompilować w konsoli przepisując prawidłowo polecenia z forum, to raczej trudno mu będzie ustawić netbeansa ;)
grymek3
Sędziwy Jeż
Sędziwy Jeż
Posty: 49
Rejestracja: 04 kwie 2007, 22:20
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: KDE Plasma
Kontakt:

Odp: NetBeans i C++ kompletnie zielony:)

Post autor: grymek3 »

spróbuj
g++ newmain.cpp -o newmain
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości