> #include
Powinno być: #include
> Według tego co było napisane w jednym z poradników powinienem skompilować coś takiego i powinno
> sie pojawić okienko. I tutaj jest problem - nie wiem jak to skompiloać! Wyczytałem, że jest
> kompilator, który sie nazywają g++, i nawet mam go zainstalowanego w systemie, ale nie wiem jak
> go uruchomić.
piszesz: g++ nazwa_pliku.cpp -o nazwa_wyjściowa
(to oczywiście najprostsza metoda, z pominięciem flag kompilacji).
>Próbowałem skomilować to w emacsie, ale mi to nie wyszlo ( w ogóle nie wiem czy to
> jest możliwe). Wziąłem tools==>compile i wcisnłem enter i pojawilo sie coś takiego
> "make: *** Nie podałeś obiektów lub nie znalazłem makefile. Stop".
Emacs opiera się na Makefileach - musiałbyś pierwej napisać takkowego dla swego projektu, by móc korzystać z kompilacji w Emacs.
-------------------------------
CXX=g++
CXXFLAGS=-c -Wall -march=athlon-xp -O2 -mfpmath=sse
LDFLAGS=
SOURCES=TU_TWOJE_PLIKI_CPP_ODDZIELONE SPACJĄ
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=NAZWA_WYNIKOWA
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CXX) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CXX) $(CXXFLAGS) $< -o $@
clean:
rm -rf *o
----------------------------------------
Zapisz sobie powyższy kod jako Makefile i wgraj do katalogu w którym masz swoje źródło. Zmień "SOURCES" na nazwy Twoich plików *.cpp (po spacji podajesz kolejno) i nazwę programu "EXECUTABLE" na swoją własną. Nie wiem jaki masz procesor, ja mam athlona xp i dlatego mam
-march=athlon-xp - jak masz inny, to pogoogluj za flagą march dla g++ i znajdziesz wartość dla Twojego procka (ta flaga optymalizuje kod pod konkretnego procka, tzn. program potem wyciska ile się da ze scalaka). Jak będziesz chciał skompilować to piszesz w konsoli make i już. Oczywiście będą kompilowane tylko te pliki w których dokonałeś zmian od ostatniej kompilacji (taka miła cecha "make") z wyłączeniem plików *.h - tzn. zmiany w tych plikach nie będą śledzone i jezeli dokonasz jedynie zmiany w pliku *.h i będziesz chciał skompilować to musisz najpierw usunąć pozostałości po poprzedniej kompilacji - make clean (pewnie zauważyłeś, ze clean to etykieta w Makefile'u)
Acha ważne jest aby wszystkie polecenia pod etykietami (to z dwukropkiem na końcu) były poprzedzone TABULATOREM!!!
A co do samego programowania w Linuxie. Kod jest tak długo przenośny między win i lin jak długo używasz biblioteki standardowej. Natomiast gdy zaczniesz używać czegoś spoza niej (np: conio.h i fcja getch() ) to na linuxie się nie skompiluje. Więc nie szukaj specjalnej książki do programowania w Linuxie, tylko naucz się dobrze biblioteki standardowej. Ja na początek polecam Ci "Symfonię C++" Grębosza jako wstęp do C++
Pozdrawiam,
Bergo