2009-08-05 6 views
13

Niedawno zacząłem uczyć się języka C++ i jestem całkowicie zdezorientowany z wyborem IDE i kompilatorów. Jestem kompetentny w interpretowaniu języków i podoba mi się prostota korzystania z dowolnego edytora IDE lub edytora tekstu, a następnie uruchamianie interpretera z poziomu wiersza poleceń. Wszystko działa tak, jak się spodziewam, niezależnie od używanego IDE, ponieważ za każdym razem korzystam z tego samego tłumacza.Uczenie się C++ bez IDE

Teraz, gdy zacząłem się uczyć w C++, jestem przytłoczony wyborem różnych kompilatorów i, co ważniejsze, ich różnicami. Wydaje się, że rzeczy będą dla mnie prostsze (niekoniecznie łatwiejsze), jeśli podczas nauki używam edytora tekstu i kompilatora uruchamianego z wiersza poleceń. Mam podstawową wiedzę na temat sposobu kompilowania i łączenia prac i rozumiem rolę plików nagłówkowych.

Po pierwsze, czy są jakieś książki lub strony internetowe, które uczą C++ tego podejścia? (IDE-less) Wiele książek stara się wskazać różnice między IDE i kompilatorami, wybierając dwa i porównując je, co wprowadza mnie w zakłopotanie.

Po drugie, w jaki sposób powinienem skonfigurować mój przepływ pracy? (Zignoruj ​​wybór edytora tekstu, mówię o kompilatorach, linkerach itp.) Staram się zrozumieć, jakie różnice mają różne kompilatory, więc pamiętaj o tym, odpowiadając. Wygląda na to, że najpopularniejsze kompilatory to g ++ i CL. podobne pytanie, ale jestem bardziej zainteresowany, dlaczego niektóre programy będą działać z niektórymi kompilatorów i innych nie: C++ Compiler for Windows without IDE?

Dalsze informacje: Zajmuję się na Windows i od tego, co rozumiem, wydaje się, że jest „czysty” C++, a następnie C++, który jest w jakiś sposób związany z Windows, czy to Visual C++? Chciałbym napisać programy korzystające z funkcji Windows, ale chcę wiedzieć, kiedy używam funkcji Windows i kiedy piszę kod, który działałby na dowolnej platformie.

Aktualizacja: Wygląda na to, że nie powinienem się martwić kompilatorami, kiedy dopiero zaczynam. Powodem, dla którego chcę zrozumieć różnice, jest to, że nie chcę pisać kodu dla konkretnego kompilatora i wpaść w złe nawyki. Czy to nie jest problem?

+2

Zacznij od książki, która uczy standardowego C++, wtedy nie będziesz musiał się martwić o złe nawyki przy użyciu niestandardowych kodów, nie zdając sobie z tego sprawy. Zobacz http://stackoverflow.com/questions/388242/ – KTC

Odpowiedz

11

Po pierwsze, czy są jakieś książki lub strony internetowe, które uczą C++ tego podejścia? (IDE-less)

Tak, zdecydowanie. Stroustrup's book zostało już wymienione. Do nauki C++ polecam dwie inne książki: Jeśli lubisz dokładne wyjaśnienia i nie stronisz od 1000 stron, spójrz na Lippman et al. Jeśli wolisz krótkie wprowadzenie i nie obawiasz się stromej krzywej uczenia się, spójrz na numer Koenig/Moo. Obie są doskonałymi książkami. (BTW, dobrym miejscem do szukania dobrych książek była zawsze sekcja przeglądu książek pod numerem ACCU.)

Jeśli chodzi o łańcuch narzędzi, z którego chcesz skorzystać: Jeśli wolisz mieć samodzielnego edytora i wywołać kompilator z w linii poleceń, możesz to zrobić za pomocą GCC lub VC. Takie podejście ma tę zaletę, że jest mniej prawdopodobne, aby skłonić cię do użycia czegoś zastrzeżonego (takiego jak C++/CLI). Jeśli chciałbyś wypróbować IDE, VC Express jest w porządku, gdy już będziesz pracował nad nowym projektem C++. Oczywiście liczba opcji, które można zmienić w przypadku nowego projektu, może być bardzo duża. Ale z drugiej strony masz rzeczy takie jak zintegrowany debugger. Zauważ, że istnieją również inne zintegrowane rozwiązania. Najbardziej dojrzałe i prominentne jest prawdopodobnie zaćmienie.

Edytuj: Jeśli nie masz nic przeciwko wydawaniu niewielkich pieniędzy, spójrz na numer Comeau. Nie jest darmowy, ale nie jest też drogi i zazwyczaj jest uważany za najbardziej zgodny ze standardami kompilator C++ i ma doskonałe komunikaty o błędach. (Możesz je przetestować pod adresem the website.) Zauważ, że emituje on jednak kod C.Oznacza to, że musisz mieć inny kompilator, aby utworzyć program wykonywalny. Ale zarówno GCC, jak i VC Express będą działać, więc nie ma innych kosztów. (Zauważ, że używając VC otrzymasz implementację std lib Dinkumware, która jest również uważana za bardzo dobrą.)

4

Użyj MinGW - jest to program narzędziowy do programowania C++, który pozwala tworzyć aplikacje dla systemu Windows. Cytowany link SO wydaje się zawierać wszystkie istotne szczegóły, więc tak naprawdę nie rozumiem, dlaczego wysłałeś to pytanie.

+0

Zadajesz złe pytanie, a na które naprawdę nie można odpowiedzieć. Oba są implementacjami tego samego standardu językowego. W obszarach som, jeden będzie nieco lepszy w implementacji takich standardów niż drugi. Ale nie powinieneś się martwić takimi rzeczami na tym etapie. –

+0

Ok dzięki. Trudno mi się nie martwić o te rzeczy, ponieważ odkryłem, że jakiś kod będzie kompilował się z jednym kompilatorem, a nie z innym, co dezorientuje mnie, gdy próbuję oprzeć się nawet podstawom. –

+0

Jeśli chodzi o podstawy, oba kompilatory obsługują te same funkcje językowe. –

3

Po pierwsze, czy są jakieś książki lub strony internetowe, które uczą C++ tego podejścia? (IDE-less)

Zacznij od przeczytania książki The C++ Programming Language. Napisany przez Bjarne Stroustrup, twórcę C++, jest to najbardziej zaufana i szeroko czytana książka na temat C++.

Zobacz także Programming — Principles and Practice Using C++. To wprowadzenie do programowania dla osób, które nigdy wcześniej nie były zaprogramowane. Przyda się również osobom, które programują nieco i chcą poprawić swój styl i technikę - lub po prostu uczyć się nowoczesnego C++.

+0

Ale niestety nie najlepszy do nauki w C++. –

+0

Może nie być dla początkujących programistów, ale dla początkujących w C++. –

+0

@Neil: Czy możesz rozwinąć swoją opinię na temat książki wprowadzającej do programowania Stroustrup? Jeszcze na to nie patrzyłem, ale od lat uczę się C++, bardzo mnie to interesuje. – sbi

1

Zajmuję się na Windows i od co rozumiem, wydaje się, że istnieje jest 'czysta' C++ i C++, który następnie jest jakoś powiązane z oknami, jest to Visual C++?Chciałbym napisać programy , które korzystają z funkcji Windows , ale chcę wiedzieć, kiedy jestem przy użyciu funkcji systemu Windows i kiedy jestem kodu piszącego, który działałby na dowolnej platformie .

MS Visual C++ 2008 Express to darmowe narzędzie IDE skierowane do osób takich jak Ty. Jest dostępne do pobrania w Microsoft, polecam wypróbować.

+1

Ok, już mam jego kopię zainstalowaną, ale obawiam się, że zacznę pisać programy, które używają funkcji Visual C++, nie zdając sobie sprawy, że to robię, a zatem program nie skompiluje się z niczym oprócz CL. –

+1

@Pheter: To zawsze jest problem, nie tylko z VC, chociaż zgadzam się, że może być gorzej z VC niż z, powiedzmy, GCC. Jedynym sposobem na uniknięcie tego jest użycie więcej niż jednego kompilatora. Nie ma nic złego w pytaniu o kilka opinii. – sbi

+0

W takim przypadku prawdopodobnie użyję MinGW i będę mieć kopię CL gotową do kompilacji po raz drugi, aby zapewnić, że rzeczy będą poprawnie kompilowane w obu. Dzięki! –

0

W systemie Windows polecam Visual Studio Express - jest darmowy i jest szeroko akceptowany przez programistów C++ na platformie Windows.

Odkąd zaczynasz uczyć się języka, nie zawracaj sobie głowy różnicami, zaletami i wadami kompilatorów i IDE - zostaw to, kiedy będziesz bardziej biegły w posługiwaniu się językiem i będzie zaangażowany w pisanie prawdziwego programu.

0

Rzeczywiście sugeruję podejście IDE, Microsoft Visual C++ Express Edition powinien załatwić sprawę. Wyłączając pewną wymyślną składnię, większość kompilatorów C++ zachowuje się w ten sam sposób. C++ jest językiem, który ma bardzo małą bibliotekę standardową (obejmującą głównie funkcje wejścia/wyjścia, podstawową matematykę itd.), To prawdopodobnie to, co nazywamy czystym C++. Dla czegoś bardziej zaawansowanego będziesz musiał użyć bibliotek systemowych. Na przykład, jeśli chcesz napisać aplikację Windows GUI, musisz dołączyć plik nagłówkowy windows.h, który jest specyficzny dla platformy i istnieje tylko w kompilatorach Windows.

+0

W rzeczywistości jest to język z dość dużą biblioteką standardową, obejmującą dużo więcej niż I/O - czy słyszałeś o STL? –

+0

Jest w części etc :) W mojej opinii jest to nadal mała biblioteka standardowa. Większość współczesnych języków posiada biblioteki kontenerów, a kiedy porównasz standardową bibliotekę C++ z biblioteką .NET Framework, Java lub Python, to naprawdę jest to podstawowe. Brakuje bazy danych, okienkowania, obsługi sieci i wątków w standardowej bibliotece C++. – Ivan

1

Visual C++ to nazwa pakietu programu IDE. Zainstalowanie go instaluje wiele rzeczy, w tym kompilator cl.exe, który może kompilować, w zależności od ustawień, program napisany w języku programowania C, C++ lub C++/CLI (dla platformy .Net).

Kompilator można użyć w wierszu polecenia bez IDE, wybierając (na przykład) Start> Programy> Microsoft Visual Studio X> Narzędzia Visual Studio> Visual Studio X Command Prompt. Spowoduje to wykonanie skryptu, który ustawia różne ustawienia środowiska potrzebne do kompilacji programów przed udzieleniem polecenia.

0

Jeśli nie będziesz używać IDE, zdecydowanie zechcesz użyć Makefiles do uporządkowania przepływu pracy. i możesz łatwo z emacs lub vim.

Zresztą może Proponuję użyć bardzo prosty, prawie nie nachalna IDE, które mogłyby być idealne dla celów kształcenia: http://www.bloodshed.net/devcpp.html

Pochodzi z kompilatora MinGW pakiecie, więc to wystarczy zainstalować i gotowe.

+1

Dev-C++ to abandonware, przejdźmy dalej .... (tj. Przynajmniej użyj wxDev-C++, jeśli podoba ci się ten konkretny interfejs IDE.) – KTC

+0

nie o najfajniejszym interfejsie lub najnowszych funkcjach, właśnie wskazałem narzędzie, w którym piszesz, naciśnij przycisk i program się kompiluje, naciśnij inny przycisk i działa. A do tego devcpp wystarczy, nic więcej, nic mniej ... pamiętaj, że OP nie chciał zadzierać z IDE – fortran

+0

DevC++ nie jest już rozwijany i jest błędny jak diabli. Jeśli chce mieć IDE inne niż MS, powinien użyć Code :: Blocks. –

0

Powiedziałbym zacząć od Visual Studio. Jest to świetne IDE do programowania C++ w oknach, może również używać go, gdy może przyspieszyć pewne rzeczy.

Różnice między kompilatorami nie są tak duże - jeśli możesz napisać solidny kod w VS, to nie powinno być problemu, aby dowiedzieć się, jak sprawić, by twój kod działał w GCC/G ++.

Jeśli chodzi o książki; Wyjątkowe C++ autorstwa Herb Sutter i języka programowania C++ autorstwa Bjarne Stroustrup to świetna lektura.

Visual Studio to sposób, w jaki należy pójść podczas pracy w systemie Windows.