Darmowe środowisko programowania dla języka C

0

Witam, możecie mi polecić darmowe środowisko programowania do c? Właśnie zaczynam naukę w tym języku i jak zobaczyłem skompilowany program pod konsole co w sumie nic nie robi do 1,8mb to mnie przestraszyło.

0

Visual C++

2

Co ma środowisko do rozmiarów skompilowanych programów? Ty na pewno chcesz, żeby Ci IDE polecić, a nie inną implementację biblioteki standardowej? Bo na przykład taki musl jest znacząco mniejszy od glibca, więc jak będziesz linkował do niego, to programy będą mniejsze.

No i zawsze można też linkować statycznie…

4

Pamiętaj o kilku rzeczach:

  1. 1.8mb na start - straszne, ale popatrz na tępo rośnięcia tej wielkości - jest ono znikome. (Tak tylko przypominam, że tyle waży średni obrazek)
  2. Możesz optymalizować program pod kątem wielkości załączając odpowiednią flagę kompilacji.
  3. Jeśli tak bardzo Ci to przeszkadza, to możesz tworzyć programy w językach skryptowych - jak tylko zapomnisz o interpreterze ważącym ze wszystkim swoim do 300mb, to twoje programy można zacząć mierzyć w kb!

edit: ten link może się przydać: http://web.archive.org/web/20111214171623/http://www.phreedom.org/solar/code/tinype/

0

A nie jest przypadkiem tak, że jeśli tam jest ponad megabajt, to muszą być jakieś dołączane nie wiadomo jakie libki na wstępie?

Bo skompilowałem teraz HelloWorlda (który tylko <stdio.h> dołączał) za pomocą gcc i wyskoczyło mi tylko 8,4 kilobajta (na Maku co prawda).

O ile nie jestem żadnym znawcą od C, to ciekawi mnie skąd ta różnica. Co dokładnie zawiera się w tym megabajcie i jak to można sprawdzić? Może ktoś wie?

Poza tym autor wątku nie napisał czego sam używa do kompilacji.

2
LukeJL napisał(a):

Bo skompilowałem teraz HelloWorlda (który tylko <stdio.h> dołączał) za pomocą gcc i wyskoczyło mi tylko 8,4 kilobajta (na Maku co prawda).

Pod Linuksem też natywne binarki są małe, bo w systemie masz podstawowe biblioteki do danego języka itp.
Tylko, że pod Windowsem jest tendencja, że program ma być samowystarczalny.

Jak chcesz zobaczyć jakie biblioteki używa twoja 8 kB binarka pod Mac OS użyj odpowiedniej komendy, np.

$ cd /bin/
$ otool -L cat
cat:
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)

Pod Linuksem:

$ cd /bin
$ ldd cat

Ale nie podam wyjścia, bo jestem pod Makiem :)

3

@LukeJL pewnie default to jakieś statyczne kompilowanie libc do binarki i jeszcze ładowanie symboli debuggera i nagle binarka puchnie ;)
@autor CLion EAP

1

Jeśli zaczynasz naukę programowania, to jest to ostatnia rzecz którą powinieneś się teraz interesować. Jakie biblioteki będą włączane w trybie debug, co to jest tenże debug, co oznacza dynamiczna i statyczna konsolidacja oraz do czego ew. służy strip (lub analogiczne narzędzie), jeszcze dojdziesz. Wybierz wygodne IDE i sensowny kompilator i tyle.

0

jest to srodowisko dev-c++. nie podmienialem nigdy nic w srodowiskach zeby lepiej wyszlo i jakos nie mam pojecia jak to zrobic, dlatego preferuje osobne srodowisko gdzie jest juz to ladnie zrobione. i nie, nie jestem kompletnie zielony jak kolega podejrzewa.

0

Minimalny program w C to ok. < 10 kB po skompilowaniu.

Ten ma np. 6 kB pod Linux / gcc:

int main(int argc, char **argv) {
    return argc;
}
gcc -fomit-frame-pointer -falign-functions=1 -mpreferred-stack-boundary=4 -falign-jumps=1 -falign-loops=1 -fno-stack-protector -fno-unroll-loops -ffast-math minimal.c

strip -S --strip-unneeded --remove-section=.note.gnu.gold-version --remove-section=.comment --remove-section=.note --remove-section=.note.gnu.build-id --remove-section=.note.ABI-tag a.out

ls -l

-rwxrwxrwx 1 root root  6024 Feb 18 09:52 a.out
-rwxrwxrwx 1 root root    53 Feb 18 09:43 minimal.c

Jak poszukasz hasła "gcc compile c smallest executable" to znajdziesz np.:
http://ptspts.blogspot.com/2013/12/how-to-make-smaller-c-and-c-binaries.html
http://www.electro.fisica.unlp.edu.ar/temas/p5/gcc.html
http://timelessname.com/elfbin/

Mniejsze programy minimalne możesz uzyskać wykorzystując:

  • ASM - jeśli masz dużo czasu (i zależne od systemu)
  • bash - jeśli masz u użytkownika basha (najlepsze dla: Linux)
  • .NET / C# - jeśli masz .NET (najlepsze dla: Windows)

Oczywiście w C# jeśli zaczniesz pisać coś sensowniejszego to program Ci spuchnie pewnie. W Bash-u - podobnie, chociaż nie aż tak.

Jeśli chodzi o środowiska IDE, to większość jest darmowych, w tym Visual Studio Community, Eclipse CDT, Code::Blocks, Qt Creator, Netbeans, C++ Builder, Pelles C.
Niewiele z nich jest dedykowanych stricte C.
Środowisko Pelles C jest wyjątkiem.

0

Pelles C bardzo przypadło mi do gustu, dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1