[so] [SO][Tema 3] Portabilitate

Costin Lupu costin.lup at gmail.com
Tue Apr 25 09:40:10 EEST 2017


On Mon, 2017-04-24 at 19:39 +0000, Darius-Florentin Neatu via so wrote:
> Salut,
> 
> 
> Am incercat sa fac tema portabila. Am creat wrappere peste functiile
> de sistem si am acelasi cod in vmsim.c.
> Diferenta intre cele doua sisteme de operare este folosirea fisierului
> wrapper_lin.c, respectiv wrapper_win.c (din Makefile selectez doar un
> singur fisier care va fi compilat).
> 
> 
> Am cateva nelamurari.
> 
> 
> 1. Pentru a se considera o implementare portabila mai este necesar sa
> fac ceva? (Ex. sa reunesc cele doua fisiere in wrapper.c. Am
> considerat ca este mai bine sa am doua fisiere mai mici, decat sa am
> unul foarte mare.)

E în regulă așa. De fapt asta e abordarea recomandată.

> 2. Deoarece compilatoarele sunt diferite (gcc vs cl), dar si sistemele
> de make (make vs nmake), am doua fisiere Makefile (Makefile.lin si
> Makefile.win - fiecare foloseste un singur fisier wrapper-???.c).
> 
> Pentru a decide ce Makefile trebuie sa folosesc in functie de SO, am
> folosit o solutie de pe stackoverflow[1] - am creat fisierul Makefile.
> Se putea obtine o solutie de compilare mai buna? 

Helăăău, ce stackoverflow? Zice la SO în lab 01 [3] și tema 1 [4]
(remember?) să folosești GNUmakefile pentru Linux și Makefile pentru
Windows. Așa ai doar 2 makefile-uri în loc de 3.

> 3. Momentan in arhiva bag toate fisierele (surse, 1xREADME,
> 3xMakefile). Cu aceeasi arhiva trec testele pe vmchecker pe ambele
> sisteme.
> Este ok daca las arhiva asa cum este? (sa nu impart in doua arhive, sa
> nu fac 2 README-uri :D).

E în regulă așa. Așa ar trebui să fie, mai puțin makefile-urile (vezi
observația 2 de mai sus).

> P.S. Atasez link-ul de pe GitLab[2] pentru a putea arunca o privire
> peste cod, daca este cazul.
> 
> 
> [1] http://stackoverflow.com/questions/8270391/use-the-same-makefile-for-make-linux-and-nmakewindows/30906085#30906085
> [2] https://gitlab.cs.pub.ro/darius.neatu1995/SO

[3] https://ocw.cs.pub.ro/courses/so/laboratoare/laborator-01
[4] https://ocw.cs.pub.ro/courses/so/teme/tema-1#precizari_vmchecker


Costin





More information about the so mailing list