Plików .h się nie kompiluje, to tylko nagłówki które są jakby “plikami pośredniczącymi” pomiędzy plikami .cpp kompilowanymi osobno.
Mógłbyś podać komunikaty błędów? O ile tej pierwszej flagi może nie przyjąć, jak nie masz pakietu c++ zainstalowanego, to tej drugiej nie ma prawa nie przyjąć.
A jak tego MinGWa instalowałeś? Masz pakiet pod C++? Jak używasz g++, to nie musisz definiować standardu (tzn. tego --std=c++03)
Notepad++ uznaje c++ jako .h … podobnie w jakiejś PRLowskiej książce do C jest że sie kompiluje pliki .h
Pobrałem najzwyczajniejszą instalke i zainstalowałem na raz C i C++ więc stąd te błędy zapewne (jak wpisuje G++ xxx.cpp -o a.exe to kompiluje normalnie)
C:\XXX>g++ hell.cpp -O2 hell7.exe
g++: error: hell7.exe: No such file or directory \\*czyli jakby pomija -O2 i szuka hell7.exe *\\
–std=c++03 jakoś przyjmuje jeśli wpiszę G++ , przy gcc nadal nie rozwiązuje problemu. (co tak właściwie daje ?)
EDIT: W tym HOWTO nie ma nic poza moją wiedze (na .dll jeszcze nie czas)
błąd sugeruje że nie umie znaleźć pliku hell7.exe, którego próbujesz skompilować. Jak chcesz określić nazwę pliku wyjściowego, to używasz -o plik_wyjsciowy.exe .
g++ to niemal to samo co wywołanie gcc z -std=c++03, tzn. zależy która “wersja” c++ jest na standardzie. Możesz też użyć np. C++0x (-std=c++0x, albo -std=gnu++0x), albo starszych: c++98
Kolejność jest dowolna, po prostu niektóre argumenty muszą być poprzedzone innymi, tak jak np. nazwa pliku wyjściowego musi być poprzedzona -o, żeby wiedział, że kolejny argument to nazwa pliku wyjściowego, a nie pliku który chcesz kompilować. Pozostałe możesz rozmieścić jak chcesz.
Przy robieniu prostych projektów wieloplikowych (jak np. na laborkach z programowania, programy po 4-6 .cpp) najlepiej użyć konstrukcji:
g++ *.cpp -O2
Szybko i bezboleśnie (jeśli wszystkie .cpp są w tym samym folderze), bez użycia IDE generujących dziesiątki zbędnych plików. Takie programy jeszcze mogą być tak jeszcze kompilowane, bo to trwa góra sekundę. Przy większych projektach, gdzie kompilacja trwa ładne kilka(dziesiąt) sekund bez makefile, albo IDE już jest nieco ciężej, ale zanim do tego dojdziesz jeszcze sporo czasu minie.
-O3 nie jest pewne. Jak się kiedyś bawiłem, była nieznaczna poprawa względem poziomu drugiego, ale czasami duże straty. Ryzykowna opcja. Ale i tak mnie najbardziej zdziwiła kompilacja llame z opcją -march=native, która zamiast skrócić, wydłużyła rozpakowanie mp3 niemal dwukrotnie! W innych testach przyspieszała gdzieś o 5-25%.
#include
#include
using namespace std;
int main()
{
int a, b;
b = 2;
cin >> a;
cout << pow(b,a);
return 0;
}
Wcześniej działało wszystko normalnie a teraz
C:\CPP>g++ -O2 hell.cpp -o aaapotenga.exe
hell.cpp: In function 'int main()'
hell.cpp:10:2: error: 'cin' was not declared in this scope
hell.cpp:11:5: error: 'cout' was not declared in this scope
a gdy dam
#include
#include
using namespace std;
int main()
{
int a, b;
b = 2;
std::cin >> a;
std::cout << pow(b,a);
return 0;
}
wywala
C:\CPP>g++ -O2 hell.cpp -o aaapotenga.exe
hell.cpp: In function 'int main()'
hell.cpp:10:2: error: 'cin' is not a member of 'std'
hell.cpp:11:5: error: 'cout' is not a member of 'std'