Skocz do zawartości

Banalny Problem Z C


Kriss

Rekomendowane odpowiedzi

Wiecie co.. zabrałem się właśnie za naukę C. Programuje w Delhi także nie jestem strasznym tępakiem w tym.

 

Jednak nie rozumiem sprawy z #include. Mianowicie skąd mam wiedzieć w jakim pliku jest nagłówek do funkcji main ? I czy każda wersja systemu i kompilatora ma to w tych samych plikach ? Jak dam komuś mój program w wersji skompilowanej, to wtedy nie ma problemu prawda? bo to już zostało dodane do pliku u mnie i nie musi on mieć kompilatora... Podsumowując gdzie są jakie nagłówki funkcji w Fedorze 3 kompilator gcc... Czy może jest jakiś lepszy kompilator...

 

Proszę pomóżcie.....

Odnośnik do komentarza
Udostępnij na innych stronach

Mianowicie skąd mam wiedzieć w jakim pliku jest nagłówek do funkcji main ?

???

funkcja main nie jest zapisana w żadnej bibliotece, dyrektywą include dołączasz pliki nagłowkowe biliotek

 

I czy każda wersja systemu i kompilatora ma to w tych samych plikach ?

nie, ale większość się zgadza np: stdio, stdlib,

 

Jak dam komuś mój program w wersji skompilowanej, to wtedy nie ma problemu prawda? bo to już zostało dodane do pliku u mnie i nie musi on mieć kompilatora...

zgadza się, nie musi mieć ani kompilatora ani bibliotek

 

Podsumowując gdzie są jakie nagłówki funkcji w Fedorze 3 kompilator gcc...

/usr/include/

 

zajrzyj też tutaj: http://www.dinkumware.com/

(głównie C++)

Odnośnik do komentarza
Udostępnij na innych stronach

ale skompilujesz pod linuchem to ruszy pod (tylko) lunuchem ..

I to tez nie w kazdym przypadku, bo jak program zostanie skompilowany na platformie 64 bitowej, to na 32 bitowej nie ruszy· Jest jakas opcja do kompilatora, ktora powoduje, ze kompilator na platformie 64 bitowej kompiluje programy pod architekture 32 bitowa, ale nie pamietam jaka. Musialbys sprawdzic w dokumentacji, albo poszukac na forum/googlach etc.

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

KozaK

Jest jakas opcja do kompilatora, ktora powoduje, ze kompilator na platformie 64 bitowej kompiluje programy pod architekture 32 bitowa,

 

Po krótkiej lekturze manuala gcc mam:

-m32

lub

-m64

 

Odpowiednio dla architektury 32 i 64 bitowej.

 

pozdro

Odnośnik do komentarza
Udostępnij na innych stronach

Jezeli piszesz w czystym C to teroretycznie (a w zasadzie praktycznie) program będzie działał na wszystkich wersjach systemu pod którym został skompilowany, ale tylko pod warunkiem, ze zostanie uruchomiony na takiej samej platformie sprzetowej. Oczywiście ta zasada działa, ale w niektórych przypadkach może się nie udać, np. gdy skompilujemy program nowym gcc 4.x w oparciu o nanjnowszy gibc, to takowy program moze nie działac pod np. Red Hatem 5.0...

"Czyste C" - kod języka C zgodny z jakims tam standardem jezyka C (chyba ISO, nie pamiętam prosze mnie poprawić) na ten standard składaja się tzw biblioteki standardowe (stdio.h, string.h itd. itp.). Taki kod da się skompilować po Windowsem, Linuksem, BeOSem, itd. jeżeli system obsługuje język C.

 

Schody zaczynają się gdy wykorzystujemy specyficzne bbilioteki (np. gtk+). Nie wszystkie biblioteki mają swoje porty na różnych systemach i które występuja w wielu wersjach. Wspomniane GTK występuje równiez w systemie Windows, ale z teg co wiem API jest nieco inne na Linuksie i na windowsie. Dalej, program skompilowany na linuksie z obsługa gtk w wersji 2.6 prawdopodobnie nie będzie działał na linuksie z gtk v2.4.

 

Za pomoca dyrektywy #include dołaczasz pliki nagłówkowe bibliotek. taki plik nagłówkowy zawiera prototypy funkcji zawartych w owej bibliotece.

 

W wypadku języków takich jak Java czy C# kod skompilowany na jednym systemie ma działać (teroretycznie, bo nie zzwsze tak jest) na innym osie, a jeżeli to się nie uda to chociaz sam kod skompilujemy na innnym systemie bez zmian. Takie jezyki odznaczaja się jednak mniejsza wydajnością i nie nadaja się do wszystkiego...

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...