Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C i portabilnost

[es] :: C/C++ programiranje :: C i portabilnost

[ Pregleda: 2288 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sendai

Član broj: 98530
Poruke: 65
*.team.ba.



Profil

icon C i portabilnost22.03.2010. u 20:08 - pre 171 meseci
Pitanje je skroz pocetnicko i znalcima glupo,ali ipak bi molio objasnjenje.
Recimo da napisem neki jednostavan program u C-u, otprilike ovako nesto:
Code:

#include <stdio.h>

int main(int argc, char *argv[])
{
    FILE *fp;

    fp = fopen(argv[1], "r");
    printf("%c\n", getc(fp));
    fclose(fp);

    return 0;
}


i kompajliram ga na windowsima u npr. prog.out (ne .exe).
Pitanje je, dakle, hoce li prog.out raditi na UNIX-u i Linux-u ako se uzme samo binarni kod (prog.out) i prebaci sa windowsa na drugi operativni sistem?
Da se razumijemo, znam da ce ovo raditi drugom sistemu ako se uzme source i kompajlira na tom sistemu, dakle hoce li raditi binarni prog.out bez sourca ako se samo on prebaci?
 
Odgovor na temu

maksvel

Član broj: 107376
Poruke: 2417

Jabber: maksvel
Sajt: maksvel.in.rs


+161 Profil

icon Re: C i portabilnost22.03.2010. u 20:36 - pre 171 meseci
To zavisi od kompajlera koji se koristi, tj. trebalo bi kod prevesti nekim cross-kompajlerom: http://en.wikipedia.org/wiki/Cross_compiler
 
Odgovor na temu

sendai

Član broj: 98530
Poruke: 65
*.team.ba.



Profil

icon Re: C i portabilnost22.03.2010. u 21:12 - pre 171 meseci
Hvala. :)
Pretpostavljam da mi ni jedan cross-compiler ne bi pomogao kad bi koristio neke sistemske pozive, bilo da se kompajliranje odvija na Windowsu, UNIX-u ili Linuxu, jeli tako?

 
Odgovor na temu

maksvel

Član broj: 107376
Poruke: 2417

Jabber: maksvel
Sajt: maksvel.in.rs


+161 Profil

icon Re: C i portabilnost22.03.2010. u 21:48 - pre 171 meseci
Kontam da to zavisi od biblioteka koje enkapsuliraju te pozive, odnosno njihovog (ne)postojanja. To je kao koncept Jave: na mašini na koju prebacuješ iskompajliran program mora postojati odgovarajuća "podrška" za program.
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: C i portabilnost23.03.2010. u 06:20 - pre 171 meseci
Pa sad, zavisi sta podrazumevas pod sistemskim pozivima - otvaranje i zatvaranje fajlova su takodje neki sistemski pozivi.;) Ako mislis na poziv nekih funkcija specificnih za Linux API, vrlo verovatno da to nece raditi na drugim sistemima, mada imas pokusaje da se napravi unixoliko okruzenje pod Windowsom (npr. Cygwin). Uzmi npr. wait() koja je slicna pod Linuxom i FreeBSD-om ali opet dovoljno razlicita da bi u kodu koji bi hteo da poteras na obe platforme pisao dupli kod a zatim preko #ifdef proveravao gde ga kompajliras. Mada, ako si se odlucio za C, vrlo verovatno da si spreman za te stvari.:)
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

[es] :: C/C++ programiranje :: C i portabilnost

[ Pregleda: 2288 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.