This shows you the differences between two versions of the page.
so:laboratoare:laborator-01 [2022/03/02 09:27] teodor_stefan.dutu [Exercițiul 0 - Stagii pe bune] |
so:laboratoare:laborator-01 [2022/03/09 15:31] (current) teodor_stefan.dutu [Nmake] |
||
---|---|---|---|
Line 634: | Line 634: | ||
=== Crearea unei biblioteci partajate === | === Crearea unei biblioteci partajate === | ||
- | Spre deosebire de o bibliotecă statică despre care am văzut că nu este nimic altceva decât o arhivă de fișiere obiect, o bibliotecă partajată este ea însăși un fișier obiect. Crearea unei biblioteci partajate se realizează prin intermediul linker-ului. Optiunea **''-shared''** indică compilatorului să creeze un obiect partajat și nu un fișier executabil. Este, de asemenea, indicată folosirea opțiunii **''-fPIC''** la crearea fișierelor obiect. | + | Spre deosebire de o bibliotecă statică despre care am văzut că nu este nimic altceva decât o arhivă de fișiere obiect, o bibliotecă partajată este ea însăși un fișier obiect. Crearea unei biblioteci partajate se realizează prin intermediul linker-ului. Optiunea **''-shared''** indică compilatorului să creeze un obiect partajat și nu un fișier executabil. Este, de asemenea, indicată folosirea opțiunii **''-fPIC''** la crearea fișierelor obiect (pentru detalii vezi [[https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html|GCC Code Gen Options]]). |
<code bash> | <code bash> | ||
Line 955: | Line 955: | ||
==== Compilatorul Microsoft cl.exe ==== | ==== Compilatorul Microsoft cl.exe ==== | ||
- | Soluția folosită pentru platforma Windows în cadrul acestui laborator este ''cl.exe'', compilatorul Microsoft pentru C/C++. Recomandăm instalarea Microsoft Visual C++ Express 2010 (10.0) (versiunea Professional a Visual C++ este disponibilă gratuit în cadrul MSDNAA). Programele C/C++ pot fi compilate prin intermediul interfeței grafice sau în linie de comandă. În cele ce urmează vom prezenta compilarea folosind linia de comandă. În Windows fișierele cod obiect au extensia ''*.obj''. | + | Soluția folosită pentru platforma Windows în cadrul acestui laborator este ''cl.exe'', compilatorul Microsoft pentru C/C++. Recomandăm instalarea Microsoft Visual C++ Express 2010 (10.0) (versiunea Professional a Visual C++ este disponibilă gratuit în cadrul [[https://msdnaa.upb.ro/|MSDNAA]]). Programele C/C++ pot fi compilate prin intermediul interfeței grafice sau în linie de comandă. În cele ce urmează vom prezenta compilarea folosind linia de comandă. În Windows fișierele cod obiect au extensia ''*.obj''. |
<columns 100% 50% -> | <columns 100% 50% -> | ||
Line 1194: | Line 1194: | ||
OBJ_LIST = parser.tab.obj parser.yy.obj | OBJ_LIST = parser.tab.obj parser.yy.obj | ||
CFLAGS = /nologo /W4 /EHsc /Za | CFLAGS = /nologo /W4 /EHsc /Za | ||
+ | L = link | ||
EXE_NAMES = CUseParser.exe UseParser.exe DisplayStructure.exe | EXE_NAMES = CUseParser.exe UseParser.exe DisplayStructure.exe | ||
Line 1200: | Line 1201: | ||
CUseParser.exe : CUseParser.obj $(OBJ_LIST) | CUseParser.exe : CUseParser.obj $(OBJ_LIST) | ||
- | $(CPP) $(CFLAGS) /Fe$@ $** | + | $(L) /Fe$@ $** |
UseParser.exe : UseParser.obj $(OBJ_LIST) | UseParser.exe : UseParser.obj $(OBJ_LIST) | ||
- | $(CPP) $(CFLAGS) /Fe$@ $** | + | $(L) /Fe$@ $** |
DisplayStructure.exe : DisplayStructure.obj $(OBJ_LIST) | DisplayStructure.exe : DisplayStructure.obj $(OBJ_LIST) | ||
- | $(CPP) $(CFLAGS) /Fe$@ $** | + | $(L) /Fe$@ $** |
clean : exe_clean obj_clean | clean : exe_clean obj_clean | ||
Line 1315: | Line 1316: | ||
<note warning> | <note warning> | ||
- | Acest set de exerciții se rulează din command-shell-ul Windows PowerShell (**nu** ''cmd.exe''). | + | Acest set de exerciții se rulează din command-shell-ul Windows Developer PowerShell (**nu** ''cmd.exe''). |
* Găsiți link la acesta pe Desktop sau accesând //Tools// -> //PowerShell Command Prompt//. | * Găsiți link la acesta pe Desktop sau accesând //Tools// -> //PowerShell Command Prompt//. | ||
* Mai multe informații despre folosirea PowerShell pentru laborator găsiți [[:so:laboratoare:resurse:windows-laborator:windows-cli#powershell | aici ]]. | * Mai multe informații despre folosirea PowerShell pentru laborator găsiți [[:so:laboratoare:resurse:windows-laborator:windows-cli#powershell | aici ]]. |