Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Playlist melodii radio - unde?

P0335 senzor arbore cotit - senzo...

Avocatul Poporului vs European Om...

Recomandari firme pentru draperii...
 Receptie Eutelsat 5 West. Este po...

Poti receptiona semnal de la mai ...

Cabluri HDMI 2.1 de 4m-5m care sa...

Zoom comparat cu Google Meet
 Monitor/Display wireless?

Pornire greoaie dupa cateva zile ...

De la un proiect scris in python ...

Audi A4 B9 quattro 190 CP!
 Tepari la pariuri pe TikTok

Banca imi cere justificativ fondu...

schema pcb ELECTRA CIM150 PAS

Probleme stomac
 

Compilarea mai multor fișiere folosind gcc

- - - - -
  • Please log in to reply
8 replies to this topic

#1
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
Salut, tocmai am făcut un script care imită ce face eclipse(mult spus).

Adică imi creează o structură de fișiere: src,bin,obj,inc.
în inc și in src pun un numare de fișiere .h și .c sau .cpp citit de la tastatura.

Problema mea e că nu prea știu cum să le compilez pe toate, până acum am avut doar 2 fișiere .cpp respectiv main și funcțiile, aici dacă îi dau de la tastatură 10 fișiere .c nu prea îmi dau seama cum să le compilez...
Orice idee, sugestie, înjurătura este binevenită.
Mulțumesc!

#2
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,284
  • Înscris: 08.10.2015
Utilitarele autoconf si automake. Vezi ce fac si cum fac.

Alea X fisiere fac parte din acelasi proiect? Sau sunt proiecte diferite? Citeste despre ordinea in care gcc leaga fisierele intre ele si ce apeleaza cand tu apelezi gcc simplu prin gcc fisier.c

#3
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
Toate sunt în același proiect.
Caut acum ce mi-ai sugerat.
Mersi.

#4
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,594
  • Înscris: 30.07.2003
Cea mai la indemana abordare e urmatoarea:
gcc file1.c file2.c fileN.c



#5
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
Da așa am mai lucrat, dar m-am cam pierdut...
Eu dau ca parametru de la lina de comanda un director și acolo se creează tot...ar arăta cam așa.

~/<prj_name> |-bin/
   |-obj/
   |-src/-<fisiere>.<c/cpp>
   |-inc/-<fisiere>.h
   |-<prj-name>.<c/cpp>
   |-<prj-name>.h
   |-build.sh

Am încercat ca în for-ul în care creez fișierele să le și compilez...însa acum mă gândesc cum să-i spun de unde să ia fișierele .h pt că ele sunt în alt folder.
Iar apoi după ce am compilat toate fișierele .c/.cpp trebuie să le afișez cunva ca să le pot pune pe toate în aceiași instrucțiune, ceva gen
gcc -Wall main.c f1.c f2.c f3.c ... fn.c -o func


Edited by worm94, 26 March 2015 - 20:05.


#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,228
  • Înscris: 24.02.2007
Invata automake.
Scrii cateva randuri si stii ca iti compileaza tot ce doresti, si, mai ales, recompileaza doar cand e cazul (s-a modificat sursa sau vreun header), nu stai cate 5 minute pentru fiecare modificare.

Si/sau inveti cmake. La fel, faci o lista cu fisiere pentru proiecte mici, si mai departe se ocupa el. Are si avantajul ca are module pentru tot felul de biblioteci cunoscute.

Fosila de autoconf n-as recomanda-o decat daca te arde puternic curiozitatea.

Edited by dani.user, 26 March 2015 - 20:09.


#7
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,594
  • Înscris: 30.07.2003

View Postworm94, on 26 martie 2015 - 20:04, said:

de unde să ia fișierele .h pt că ele sunt în alt folder.
De cai relative n-ai auzit ?

#8
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postworm94, on 26 martie 2015 - 20:04, said:

Da așa am mai lucrat, dar m-am cam pierdut...
Eu dau ca parametru de la lina de comanda un director și acolo se creează tot...ar arăta cam așa.

~/<prj_name> |-bin/
   |-obj/
   |-src/-<fisiere>.<c/cpp>
   |-inc/-<fisiere>.h
   |-<prj-name>.<c/cpp>
   |-<prj-name>.h
   |-build.sh

Am încercat ca în for-ul în care creez fișierele să le și compilez...însa acum mă gândesc cum să-i spun de unde să ia fișierele .h pt că ele sunt în alt folder.
Iar apoi după ce am compilat toate fișierele .c/.cpp trebuie să le afișez cunva ca să le pot pune pe toate în aceiași instrucțiune, ceva gen
gcc -Wall main.c f1.c f2.c f3.c ... fn.c -o func

Buildurile out of sourcetree sunt mai curate. Te bagi intr-un director gol, undeva, in afara proiectului, si invoci de acolo scula de compilare.

Invata sa folosesti Makefile manual, apoi treci la cmake, care stie sa genereze Makefiles sau alte scripturi specifice platformei.

Cu Makefiles in Linux (similar cu toolset-ul mingw pe windows):

cd builddir/
make -f ../myproject/Makefile

Dupa ce stapanesti asta, incearca sa ajungi la acelasi rezultat, dar lasand cmake sa-ti genereze fisierele Makefile.

Dupa ce stapanesti si asta, abia apoi te apuci sa folosesti un IDE (si sa instalezi pluginuri pentru cmake / Makefiles).

Asta daca vrei sa fii apt apoi sa si repari manual greseli, acolo unde automatismele dau gres (si dau gres, in general datorita folosirii in moduri atipice - cand nu stapanesti scula, tinzi sa faci lucruri anapoda, si atunci automatismele gresesc, si nu vei mai sti de unde sa le apuci).

#9
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015

View Postdani.user, on 26 martie 2015 - 20:08, said:

Invata automake.
Scrii cateva randuri si stii ca iti compileaza tot ce doresti, si, mai ales, recompileaza doar cand e cazul (s-a modificat sursa sau vreun header), nu stai cate 5 minute pentru fiecare modificare.

Si/sau inveti cmake. La fel, faci o lista cu fisiere pentru proiecte mici, si mai departe se ocupa el. Are si avantajul ca are module pentru tot felul de biblioteci cunoscute.

Fosila de autoconf n-as recomanda-o decat daca te arde puternic curiozitatea.


Interesant, mersi mult pentru informații.
Eu am rămas setat pe gcc, de altceva nu prea știam.

Mersi. OriginalCopy, o grămadă de informație pentru seara asta, se pare că nu o să mă plictisesc.

Edited by worm94, 26 March 2015 - 20:43.


Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate