Rev 9663 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9663 | Rev 9782 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | Áûñòðûé ñòàðò |
1 | Áûñòðûé ñòàðò |
2 | Äëÿ èñïîëüçîâàíèÿ íîâûõ âîçìîæíîñòåé ïðåäîñòàâëÿåìûõ ðàñøèðåíèåì KX |
- | |
3 | íåîáõîäèìî èñïîëüçîâàòü ôàéë êîíôèãóðàöèè tcc.conf â ïàïêå ãäå ðàñïîëîæåí tcc |
- | |
Line -... | Line 2... | ||
- | 2 | ||
4 | 3 | tcc èñïîëüçóåòñÿ êàê îáû÷íî (ñì. ñïðàâêó tcc). Ðàñøèðåíèå KX èñïîëüçîëüçóåò |
|
- | 4 | ôàéëû îïðåäåëåíèé ñèìâîëîâ (*.def) äëÿ äèíàìè÷åñêèõ áèáëèîòåê (ôàéëû *.o, |
|
- | 5 | íå òðåáóþòñÿ, èñêëþ÷åíèå - ñòàòè÷åñêèå *.o, åñëè îíè íóæíû äëÿ ðàáîòû |
|
Line 5... | Line 6... | ||
5 | Ýòîò ôàéë ïåðåíàñòðàèâàåò äèðåêòîðèþ %ktcc_root%\ íà %ktcc_root%\kx. |
6 | ïðîãðàììû). |
- | 7 | ||
6 | 8 | Ïðèìåðû ïî ñáîðêå ñì. â äèðåêòîðèè /samples |
|
- | 9 | ||
- | 10 | Ïðèìå÷àíèå: |
|
- | 11 | êëþ÷ -nobss áûë óäàëåí, òàê êàê îí íå èìååò ñìûñëà (ðàíåå ãåíåðèðîâàâøàÿñÿ |
|
- | 12 | bss ñåêöèÿ çàïîëíÿëàñü íóëÿìè è çàíèìàëà íåíóæíîå ìåñòî â ôàéëå, ýòà ñåêöèÿ |
|
- | 13 | íå äîëæíà ñîäåðæàòüñÿ â îáðàçå è ÿäðî èíèöèàëèçèðóåò ýòó ÷àñòü íÿëÿìè |
|
- | 14 | àâòîìàòè÷åñêè ïðè çàãðóçêå) |
|
- | 15 | ||
- | 16 |  äèðåêòîðèè /lib ïîñòàâëÿþòñÿ ôàéëû *.def (îïðåäåëåíèå ñèìâîëîâ äèíàìè÷åñêèõ |
|
- | 17 | áèáëèîòåê), crt0.o (ïîääåðæêà êîäà Ñ) è *libtcc.a (âñïîìîãàòåëüíàÿ áèáëèîòåêà |
|
- | 18 | tcc), à òàêæå íåêîòîðûå ñòàòè÷åñêèå áèáëèîòåêè *.a. Êðîìå òîãî, èìååòñÿ |
|
Line 7... | Line 19... | ||
7 | Â äàííîé äèðåêòîðèè ïðèñóòñòâóåò ïàïêà lib ñ ôàéëàìè |
19 | áèáëèîòåêà tiny.o äëÿ âîçìîæíîñòè ëèíêîâêè ïðèëîæåíèé áåç ïîääåðæêè êîäà Ñ, |
8 | *.def, crt.0 è libtcc.a |
20 | â òîì ÷èñëå îáúåêòíûõ ôàéëîâ ñîçäàííûå ñòîðîííèìè êîìïèëÿòîðàìè. |
- | 21 | ||
9 | 22 | Âî èçáåæàíèå êîíôëèêòîâ áèáèëèîòåê ñ èñïîëüçîâàíèåì âîçìîæíîñòåé |
|
10 | Âî èçáåæàíèå êîíôëèêòîâ áèáèëèîòåê ñ èñïîëüçîâàíèåì âîçìîæíîñòåé |
23 | ïðåäîñòàâëÿåìûõ ðàñøèðåíèåì KX ðåêîìåíäóåòñÿ èñïîëüçîâàòü òîëüêî îäíó |
11 | ïðåäîñòàâëÿåìûõ ðàñøèðåíèåì KX ðåêîìåíäóåòñÿ èñïîëüçîâàòü òîëüêî îäíó |
24 | äèðåêòîðèþ ñ áèáëèîòåêàìè [++, â êîòîðîé íå äîëæíî áûòü âçàèìîèñêëþ÷àþùèõ |
Line 12... | Line 25... | ||
12 | äèðåêòîðèþ ñ áèáëèîòåêàìè. Åñëè îïðåäåëåíî íåñêîëüêî äèðåêòîðèé áèáëèîòåê, |
25 | áèáëèîòåê]. Åñëè îïðåäåëåíî íåñêîëüêî äèðåêòîðèé áèáëèîòåê, |
Line 20... | Line 33... | ||
20 | ïåðâàÿ íàéäåííàÿ áèáèëèîòåêà. Òàêæå îáðàòèòå âíèìàíèå, ÷òî äëÿ êîððåêòíîé |
33 | ïåðâàÿ íàéäåííàÿ áèáèëèîòåêà. Òàêæå îáðàòèòå âíèìàíèå, ÷òî äëÿ êîððåêòíîé |
21 | ðàáîòû ïðèëîæåíèÿ ñ ðàñøèðåíèåì KX âñå äèíàìè÷åñêèå áèáëèîòåêè äîëæíû áûòü |
34 | ðàáîòû ïðèëîæåíèÿ ñ ðàñøèðåíèåì KX âñå äèíàìè÷åñêèå áèáëèîòåêè äîëæíû áûòü |
22 | îáðàáîòàíû òîëüêî ñ *.def |
35 | îáðàáîòàíû òîëüêî ñ *.def |
23 | 36 | ||
Line 24... | Line -... | ||
24 |  îñòàëüíîì tcc èñïîëüçóåòñÿ êàê îáû÷íî (ñì. ñïðàâêó tcc) |
- | |
25 | Ïðèìå÷àíèå: |
- | |
26 | êëþ÷ -nobss áûë óäàëåí, òàê êàê îí íå èìååò ñìûñëà (ðàíåå ãåíåðèðîâàâøàÿñÿ |
- | |
27 | bss ñåêöèÿ çàïîëíÿëàñü íóëÿìè è çàíèìàëà íåíóæíîå ìåñòî â ôàéëå, ýòà ñåêöèÿ |
- | |
28 | íå äîëæíà ñîäåðæàòüñÿ â îáðàçå è ÿäðî èíèöèàëèçèðóåò ýòó ÷àñòü íÿëÿìè |
- | |
29 | àâòîìàòè÷åñêè ïðè çàãðóçêå) |
- | |
30 | - | ||
31 | Ôàéëû îïðåäåëåíèÿ ñèìâîëîâ |
37 | Ôàéëû îïðåäåëåíèÿ ñèìâîëîâ |
- | 38 | ||
32 | Ðàñøèðåíèå KX èñïîëüçóåò ôàéëû îïðåäåëåíèé ñèìâîëîâ (*.def). Ôàéëû *.def |
39 | Ðàñøèðåíèå KX èñïîëüçóåò ôàéëû îïðåäåëåíèé ñèìâîëîâ (*.def). Ôàéëû *.def |
33 | èñïîëüçóþò ïðîñòîé ôîðìàò è ìîãóò ñîçäâàòüñÿ è ðåäàêòèðîâàòüñÿ â ëþáîì |
40 | èñïîëüçóþò ïðîñòîé ôîðìàò è ìîãóò ñîçäâàòüñÿ è ðåäàêòèðîâàòüñÿ â ëþáîì |
34 | óäîáíîì òåêñòîâîì ðåäàêòîðå. Ñòðóêòóðà ôàéëà *.def îïèñàíà íèæå. |
41 | óäîáíîì òåêñòîâîì ðåäàêòîðå. Ñòðóêòóðà ôàéëà *.def îïèñàíà íèæå. |
Line 35... | Line 42... | ||
35 | 42 | ||
Line 52... | Line 59... | ||
52 | [libname_]entry2 |
59 | [libname_]entry2 |
53 | 60 | ||
Line 54... | Line 61... | ||
54 | ; âñå îñòàëüíûå ñèìâîëû áèáëèîòåêè |
61 | ; âñå îñòàëüíûå ñèìâîëû áèáëèîòåêè |
Line -... | Line 62... | ||
- | 62 | ||
- | 63 | Çàãîëîâî÷íûå ôàéëû äèíàìè÷åñêèõ áèáëèîòåê |
|
- | 64 | Äëÿ èìïîòèðóåìûõ ôóíêöèé ïîääåðæèâàåòñÿ äâà ñïîñîáà èõ îáúÿâëåíèÿ: |
|
- | 65 | - ñ ïðåôèêñîì àòðèáóòà èìïîðòà (ðåêîìåíäóåòñÿ äëÿ íîâûõ áèáèëèîòåê). |
|
- | 66 | Äàííûé ñïîñîá äîïîëíèòåëüíî óìåíüøàåò ðàçìåð ïðèëîæåíèÿ. |
|
- | 67 | ||
- | 68 | __attribute__((dllimport)) void foo(int); |
|
- | 69 | ||
- | 70 | - âíåøíÿÿ ôóíêöèÿ ñ âûçîâîì ïî óêàçàòåëþ (óñòàðåâøèé ñïîñîá, èñïîëüçóåòñÿ |
|
- | 71 | äëÿ ñîâìåñòèìîñòè ñ èìåþùèìèñÿ íà äàííûé ìîìåíò çàãîëîâêàìè) |
|
- | 72 | ||
- | 73 | extern int (*foo)(const char*); |
|
- | 74 | ||
- | 75 | ÂÍÈÌÀÍÈÅ: |
|
- | 76 | îáúÿâëåíèå èìïîðòèðóåìîé ôóíêöèè ñ âûçîâîì ïî óêàçàòåëþ áåç ñïåöèôèêàòîðà |
|
- | 77 | extern ÿâëÿåòñÿ îøèáêîé, êîòîðóþ tcc íå ìîæåò îòñëåäèòü, òàê êàê äàííàÿ |
|
- | 78 | êîíñòðóêöèÿ ÿâëÿåòñÿ ïðàâèëüíîé ñ òî÷êè çðåíèÿ ÿçûêà Ñ |
|
- | 79 | ||
- | 80 | int (*foo)(const char*); => îøèáêà!!! |
|
- | 81 | ||
- | 82 | Îáúÿâëåíèå èìïîðòèðóåìûõ ôóíêöèé áåç __attribute__((dllimport)) |
|
- | 83 | íå ïîääåðæèâàåòñÿ è áóäåò ãåíåðèðîâàòü îøèáêó ëèíêåðà |
|
- | 84 | ||
- | 85 | void foo(int); => îøèáêà!!!, îñòàíîâ ëèíêåðà. |
|
55 | 86 | ||
- | 87 | Ïðîâåðêà ïîääåðæêè ðàñøèðåíèÿ KX |
|
56 | Ïðîâåðêà ïîääåðæêè ðàñøèðåíèÿ KX |
88 | |
57 | Äëÿ ïðîâåðêè, ÷òî tcc ïîääåðæèâàåò ðàñøèðåíèå KX: |
89 | Äëÿ ïðîâåðêè, ÷òî tcc ïîääåðæèâàåò ðàñøèðåíèå KX: |
58 | 1. â êîìàíäíîé ñòðîêå íàáåðèòå |
90 | 1. â êîìàíäíîé ñòðîêå íàáåðèòå |
59 | tcc -v |
91 | tcc -v |
60 | Ñòðîêà íèæå îçíà÷àåò, ÷òî èìååòñÿ ïîääåðêà ðàñøèðåíèÿ KX |
92 | Ñòðîêà íèæå îçíà÷àåò, ÷òî èìååòñÿ ïîääåðêà ðàñøèðåíèÿ KX |
Line 61... | Line 93... | ||
61 | tcc version 0.9.26 (i386 KolibriOS/KX extension) |
93 | tcc version 0.9.26 (i386 KolibriOS/KX extension 0.4.6) |
62 | 94 | ||
63 | 2. Â êîäå äëÿ óñëîâíîé êîìïèëÿöèè èñïîëüçóéòå äèðåêòèâû ïðåïðîöåññîðà |
95 | 2. Â êîäå äëÿ óñëîâíîé êîìïèëÿöèè èñïîëüçóéòå äèðåêòèâû ïðåïðîöåññîðà |
64 | ïðîâåðêè ïðåäîïðåäåëåííîãî ìàêðîñà __KX__, íàïðèìåð |
96 | ïðîâåðêè ïðåäîïðåäåëåííîãî ìàêðîñà __KX__, íàïðèìåð |
Line 73... | Line 105... | ||
73 | îïðåäåëåí âñåãäà, äàæå åñëè Âû ïî êàêèì òî ïðè÷èíàì íå æåëàåòå |
105 | îïðåäåëåí âñåãäà, äàæå åñëè Âû ïî êàêèì òî ïðè÷èíàì íå æåëàåòå |
74 | èñïîëüçîâàòü íîâûå ïðåèìóùåñòâà. Ïðè èñïîëüçîâàíèè òåêóùèõ |
106 | èñïîëüçîâàòü íîâûå ïðåèìóùåñòâà. Ïðè èñïîëüçîâàíèè òåêóùèõ |
75 | îñîáåííîñòåé ðàçäåëÿòü êîä îïèñàííûì â ïðèìåðå âûøå ñïîñîáîì â |
107 | îñîáåííîñòåé ðàçäåëÿòü êîä îïèñàííûì â ïðèìåðå âûøå ñïîñîáîì â |
76 | áîëüøèíñòâå ñëó÷àåâ íå òðåáóåòñÿ. |
108 | áîëüøèíñòâå ñëó÷àåâ íå òðåáóåòñÿ. |
77 | 109 | ||
78 | Îáåñïå÷åíèå ñîâìåñòèìîñòè |
- | |
79 | Åñëè äëÿ îáåñïå÷åíèÿ ñîâìåñòèìîñòè íåîáõîäèìî îòäåëèòü êîä, ÷òîáû åãî ìîæíî |
- | |
80 | áûëî èñïîëüçîâàòü êàê ñ ðàñøèðåíèåì KX, òàê è áåç íåãî, Âû ìîæåòå îïðåäåëèòü |
- | |
81 | äîïîëíèòåëüíûé ìàêðîñ è òàêèì îáðàçîì ðàçäåëÿòü êîä íà íóæíûå ó÷àñòêè, |
- | |
82 | íàïðèìåð. Íàñòîÿòåëüíî ðåêîìåíäóåòñÿ èñïîëüçîâàòü òîëüêî êîä ñ ïîääåðæêîé |
- | |
83 | ðàñøèðåíèÿ KX. |
- | |
84 | - | ||
85 | ... |
- | |
86 | - | ||
87 | #ifdef _C_LAYER |
- | |
88 | // Êîä êîòîðûé âûïîëíÿåòñÿ áåç ïîääåðæêè ðàñøèðåíèÿ KX |
- | |
89 | / èñïîëüçóþùèé ñòàðûé ìåòîä çàãðóçêè |
- | |
90 | if(!kolibri_libimg_init()){ // Çàãðóæàåì libimg.obj |
- | |
91 | notify_show("Libimg.obj not loaded!' -E"); |
- | |
92 | exit(0); |
- | |
93 | } |
- | |
94 | #endif |
- | |
95 | - | ||
96 | ... |
- | |
97 | - | ||
98 | - | ||
99 | 110 |