Subversion Repositories Kolibri OS

Rev

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