1fb726d48Sopenharmony_ci<!DOCTYPE html>
2fb726d48Sopenharmony_ci<html>
3fb726d48Sopenharmony_ci  <head>
4fb726d48Sopenharmony_ci    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5fb726d48Sopenharmony_ci    <title>quickstart_smartperflinux_compile_guide</title>
6fb726d48Sopenharmony_ci
7fb726d48Sopenharmony_ci    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8fb726d48Sopenharmony_ci
9fb726d48Sopenharmony_ci    <style>
10fb726d48Sopenharmony_ci      code[class*='smartperf-'],
11fb726d48Sopenharmony_ci      pre[class*='smartperf-'] {
12fb726d48Sopenharmony_ci        color: #333333;
13fb726d48Sopenharmony_ci        background: none;
14fb726d48Sopenharmony_ci        font-family: Helvetica;
15fb726d48Sopenharmony_ci        line-height: 1.6;
16fb726d48Sopenharmony_ci        text-align: left;
17fb726d48Sopenharmony_ci        white-space: pre;
18fb726d48Sopenharmony_ci        -moz-tab-size: 9;
19fb726d48Sopenharmony_ci        -o-tab-size: 9;
20fb726d48Sopenharmony_ci        tab-size: 8;
21fb726d48Sopenharmony_ci        -webkit-hyphens: none;
22fb726d48Sopenharmony_ci        -moz-hyphens: none;
23fb726d48Sopenharmony_ci        -ms-hyphens: none;
24fb726d48Sopenharmony_ci        hyphens: none;
25fb726d48Sopenharmony_ci      }
26fb726d48Sopenharmony_ci
27fb726d48Sopenharmony_ci      /* Code blocks */
28fb726d48Sopenharmony_ci      pre[class*='smartperf-'] {
29fb726d48Sopenharmony_ci        padding: 0.9em;
30fb726d48Sopenharmony_ci        overflow: auto;
31fb726d48Sopenharmony_ci        border-radius: 2px;
32fb726d48Sopenharmony_ci        background: #f5f5f4;
33fb726d48Sopenharmony_ci      }
34fb726d48Sopenharmony_ci
35fb726d48Sopenharmony_ci      /* Inline code */
36fb726d48Sopenharmony_ci      :not(pre) > code[class*='smartperf-'] {
37fb726d48Sopenharmony_ci        white-space: normal;
38fb726d48Sopenharmony_ci        background: #fcf8f8;
39fb726d48Sopenharmony_ci        padding: 1px 0.2em;
40fb726d48Sopenharmony_ci        border-radius: 1px 0.3em;
41fb726d48Sopenharmony_ci      }
42fb726d48Sopenharmony_ci
43fb726d48Sopenharmony_ci      .tk.comment,
44fb726d48Sopenharmony_ci      .tk.blockquote {
45fb726d48Sopenharmony_ci        color: #8c918c;
46fb726d48Sopenharmony_ci      }
47fb726d48Sopenharmony_ci
48fb726d48Sopenharmony_ci      .tk.cdata {
49fb726d48Sopenharmony_ci        color: #183898;
50fb726d48Sopenharmony_ci      }
51fb726d48Sopenharmony_ci
52fb726d48Sopenharmony_ci      .tk.doctype,
53fb726d48Sopenharmony_ci      .tk.punctuation,
54fb726d48Sopenharmony_ci      .tk.variable,
55fb726d48Sopenharmony_ci      .tk.macro.property {
56fb726d48Sopenharmony_ci        color: #424242;
57fb726d48Sopenharmony_ci      }
58fb726d48Sopenharmony_ci
59fb726d48Sopenharmony_ci      .tk.operator,
60fb726d48Sopenharmony_ci      .tk.important,
61fb726d48Sopenharmony_ci      .tk.keyword,
62fb726d48Sopenharmony_ci      .tk.rule,
63fb726d48Sopenharmony_ci      .tk.builtin {
64fb726d48Sopenharmony_ci        color: #b71d65;
65fb726d48Sopenharmony_ci      }
66fb726d48Sopenharmony_ci
67fb726d48Sopenharmony_ci      .tk.string,
68fb726d48Sopenharmony_ci      .tk.url,
69fb726d48Sopenharmony_ci      .tk.regex,
70fb726d48Sopenharmony_ci      .tk.attr-value {
71fb726d48Sopenharmony_ci        color: #16338d;
72fb726d48Sopenharmony_ci      }
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci      .tk.property,
75fb726d48Sopenharmony_ci      .tk.number,
76fb726d48Sopenharmony_ci      .tk.boolean,
77fb726d48Sopenharmony_ci      .tk.entity,
78fb726d48Sopenharmony_ci      .tk.atrule,
79fb726d48Sopenharmony_ci      .tk.constant,
80fb726d48Sopenharmony_ci      .tk.symbol,
81fb726d48Sopenharmony_ci      .tk.command,
82fb726d48Sopenharmony_ci      .tk.code {
83fb726d48Sopenharmony_ci        color: #037aa2;
84fb726d48Sopenharmony_ci      }
85fb726d48Sopenharmony_ci
86fb726d48Sopenharmony_ci      .tk.tag,
87fb726d48Sopenharmony_ci      .tk.selector,
88fb726d48Sopenharmony_ci      .tk.prolog {
89fb726d48Sopenharmony_ci        color: #69ad62;
90fb726d48Sopenharmony_ci      }
91fb726d48Sopenharmony_ci
92fb726d48Sopenharmony_ci      .tk.function,
93fb726d48Sopenharmony_ci      .tk.namespace,
94fb726d48Sopenharmony_ci      .tk.pseudo-element,
95fb726d48Sopenharmony_ci      .tk.class,
96fb726d48Sopenharmony_ci      .tk.class-name,
97fb726d48Sopenharmony_ci      .tk.pseudo-class,
98fb726d48Sopenharmony_ci      .tk.id,
99fb726d48Sopenharmony_ci      .tk.url-reference .tk.variable,
100fb726d48Sopenharmony_ci      .tk.attr-name {
101fb726d48Sopenharmony_ci        color: #775d9d;
102fb726d48Sopenharmony_ci      }
103fb726d48Sopenharmony_ci
104fb726d48Sopenharmony_ci      .tk.entity {
105fb726d48Sopenharmony_ci        cursor: help;
106fb726d48Sopenharmony_ci      }
107fb726d48Sopenharmony_ci
108fb726d48Sopenharmony_ci      .tk.title,
109fb726d48Sopenharmony_ci      .tk.title .tk.punctuation {
110fb726d48Sopenharmony_ci        font-weight: bold;
111fb726d48Sopenharmony_ci        color: #1a3773;
112fb726d48Sopenharmony_ci      }
113fb726d48Sopenharmony_ci
114fb726d48Sopenharmony_ci      .tk.list {
115fb726d48Sopenharmony_ci        color: #f56940;
116fb726d48Sopenharmony_ci      }
117fb726d48Sopenharmony_ci
118fb726d48Sopenharmony_ci      .tk.inserted {
119fb726d48Sopenharmony_ci        background-color: #eaffea;
120fb726d48Sopenharmony_ci        color: #509b2f;
121fb726d48Sopenharmony_ci      }
122fb726d48Sopenharmony_ci
123fb726d48Sopenharmony_ci      .tk.deleted {
124fb726d48Sopenharmony_ci        background-color: #fae1e1;
125fb726d48Sopenharmony_ci        color: #ad2d06;
126fb726d48Sopenharmony_ci      }
127fb726d48Sopenharmony_ci
128fb726d48Sopenharmony_ci      .tk.bold {
129fb726d48Sopenharmony_ci        font-weight: bolder;
130fb726d48Sopenharmony_ci      }
131fb726d48Sopenharmony_ci
132fb726d48Sopenharmony_ci      .tk.italic {
133fb726d48Sopenharmony_ci        font-style: normal;
134fb726d48Sopenharmony_ci      }
135fb726d48Sopenharmony_ci
136fb726d48Sopenharmony_ci      /* JSON */
137fb726d48Sopenharmony_ci      .smartperf-json .tk.property {
138fb726d48Sopenharmony_ci        color: #19358c;
139fb726d48Sopenharmony_ci      }
140fb726d48Sopenharmony_ci
141fb726d48Sopenharmony_ci      .smartperf-markup .tk.tag .tk.punctuation {
142fb726d48Sopenharmony_ci        color: #2c2b2b;
143fb726d48Sopenharmony_ci      }
144fb726d48Sopenharmony_ci
145fb726d48Sopenharmony_ci      /* CSS */
146fb726d48Sopenharmony_ci      code.smartperf-css,
147fb726d48Sopenharmony_ci      .smartperf-css .tk.function {
148fb726d48Sopenharmony_ci        color: #047ca4;
149fb726d48Sopenharmony_ci      }
150fb726d48Sopenharmony_ci
151fb726d48Sopenharmony_ci      /* YAML */
152fb726d48Sopenharmony_ci      .smartperf-yaml .tk.atrule {
153fb726d48Sopenharmony_ci        color: #609b5a;
154fb726d48Sopenharmony_ci      }
155fb726d48Sopenharmony_ci
156fb726d48Sopenharmony_ci      code.smartperf-yaml {
157fb726d48Sopenharmony_ci        color: #153491;
158fb726d48Sopenharmony_ci      }
159fb726d48Sopenharmony_ci
160fb726d48Sopenharmony_ci      /* Ruby */
161fb726d48Sopenharmony_ci      .smartperf-ruby .tk.function {
162fb726d48Sopenharmony_ci        color: #3f3e3e;
163fb726d48Sopenharmony_ci      }
164fb726d48Sopenharmony_ci
165fb726d48Sopenharmony_ci      /* Markdown */
166fb726d48Sopenharmony_ci      .smartperf-markdown .tk.url {
167fb726d48Sopenharmony_ci        color: #6e5298;
168fb726d48Sopenharmony_ci      }
169fb726d48Sopenharmony_ci
170fb726d48Sopenharmony_ci      /* Makefile */
171fb726d48Sopenharmony_ci      .smartperf-makefile .tk.symbol {
172fb726d48Sopenharmony_ci        color: #6c5393;
173fb726d48Sopenharmony_ci      }
174fb726d48Sopenharmony_ci
175fb726d48Sopenharmony_ci      .smartperf-makefile .tk.variable {
176fb726d48Sopenharmony_ci        color: #183488;
177fb726d48Sopenharmony_ci      }
178fb726d48Sopenharmony_ci
179fb726d48Sopenharmony_ci      .smartperf-makefile .tk.builtin {
180fb726d48Sopenharmony_ci        color: #027ba4;
181fb726d48Sopenharmony_ci      }
182fb726d48Sopenharmony_ci
183fb726d48Sopenharmony_ci      /* Bash */
184fb726d48Sopenharmony_ci      .smartperf-bash .tk.keyword {
185fb726d48Sopenharmony_ci        color: #027fa9;
186fb726d48Sopenharmony_ci      }
187fb726d48Sopenharmony_ci
188fb726d48Sopenharmony_ci      /* highlight */
189fb726d48Sopenharmony_ci      pre[dl] {
190fb726d48Sopenharmony_ci        position: relative;
191fb726d48Sopenharmony_ci        padding: 1em 1px 1px 0.9em;
192fb726d48Sopenharmony_ci      }
193fb726d48Sopenharmony_ci
194fb726d48Sopenharmony_ci      pre[dl] .line-highlight-wrapper {
195fb726d48Sopenharmony_ci        position: absolute;
196fb726d48Sopenharmony_ci        top: 1px;
197fb726d48Sopenharmony_ci        left: 1px;
198fb726d48Sopenharmony_ci        background-color: transparent;
199fb726d48Sopenharmony_ci        display: block;
200fb726d48Sopenharmony_ci        width: 99%;
201fb726d48Sopenharmony_ci      }
202fb726d48Sopenharmony_ci
203fb726d48Sopenharmony_ci      pre[dl] .line-highlight {
204fb726d48Sopenharmony_ci        position: absolute;
205fb726d48Sopenharmony_ci        left: 1px;
206fb726d48Sopenharmony_ci        right: 1px;
207fb726d48Sopenharmony_ci        padding: inherit;
208fb726d48Sopenharmony_ci        margin-top: 0.9em;
209fb726d48Sopenharmony_ci        background: hsla(25, 21%, 50%, 0.08);
210fb726d48Sopenharmony_ci        background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0));
211fb726d48Sopenharmony_ci        pointer-events: none;
212fb726d48Sopenharmony_ci        line-height: inherit;
213fb726d48Sopenharmony_ci        white-space: pre;
214fb726d48Sopenharmony_ci      }
215fb726d48Sopenharmony_ci
216fb726d48Sopenharmony_ci      pre[dl] .line-highlight:before,
217fb726d48Sopenharmony_ci      pre[dl] .line-highlight[data-end]:after {
218fb726d48Sopenharmony_ci        content: attr(data-start);
219fb726d48Sopenharmony_ci        position: absolute;
220fb726d48Sopenharmony_ci        text-shadow: none;
221fb726d48Sopenharmony_ci        top: 0.3em;
222fb726d48Sopenharmony_ci        left: 0.7em;
223fb726d48Sopenharmony_ci        min-width: 0.9em;
224fb726d48Sopenharmony_ci        padding: 1px 0.6em;
225fb726d48Sopenharmony_ci        background-color: hsla(24, 20%, 47%, 0.4);
226fb726d48Sopenharmony_ci        color: hsl(20, 11%, 95%);
227fb726d48Sopenharmony_ci        text-align: center;
228fb726d48Sopenharmony_ci        vertical-align: 0.2em;
229fb726d48Sopenharmony_ci        border-radius: 10000px;
230fb726d48Sopenharmony_ci        box-shadow: 1px 2px #fdf6f6;
231fb726d48Sopenharmony_ci      }
232fb726d48Sopenharmony_ci
233fb726d48Sopenharmony_ci      pre[dl] .line-highlight[data-end]:after {
234fb726d48Sopenharmony_ci        content: attr(data-end);
235fb726d48Sopenharmony_ci        top: auto;
236fb726d48Sopenharmony_ci        bottom: 0.5em;
237fb726d48Sopenharmony_ci      }
238fb726d48Sopenharmony_ci
239fb726d48Sopenharmony_ci      html body {
240fb726d48Sopenharmony_ci        line-height: 1.6;
241fb726d48Sopenharmony_ci        font-size: 16px;
242fb726d48Sopenharmony_ci        color: #333333;
243fb726d48Sopenharmony_ci        overflow: initial;
244fb726d48Sopenharmony_ci        background-color: #ffffff;
245fb726d48Sopenharmony_ci        word-wrap: break-word;
246fb726d48Sopenharmony_ci        font-family: Helvetica;
247fb726d48Sopenharmony_ci        box-sizing: border-box;
248fb726d48Sopenharmony_ci      }
249fb726d48Sopenharmony_ci
250fb726d48Sopenharmony_ci      html body > :first-child {
251fb726d48Sopenharmony_ci        margin-top: 0px;
252fb726d48Sopenharmony_ci      }
253fb726d48Sopenharmony_ci
254fb726d48Sopenharmony_ci      html body h1,
255fb726d48Sopenharmony_ci      html body h2,
256fb726d48Sopenharmony_ci      html body h3,
257fb726d48Sopenharmony_ci      html body h4,
258fb726d48Sopenharmony_ci      html body h5,
259fb726d48Sopenharmony_ci      html body h6 {
260fb726d48Sopenharmony_ci        margin-top: 1em;
261fb726d48Sopenharmony_ci        margin-bottom: 16px;
262fb726d48Sopenharmony_ci        color: #000000;
263fb726d48Sopenharmony_ci        line-height: 1.2;
264fb726d48Sopenharmony_ci      }
265fb726d48Sopenharmony_ci
266fb726d48Sopenharmony_ci      html body h1 {
267fb726d48Sopenharmony_ci        font-weight: 300;
268fb726d48Sopenharmony_ci        font-size: 2.25em;
269fb726d48Sopenharmony_ci        padding-bottom: 0.3em;
270fb726d48Sopenharmony_ci      }
271fb726d48Sopenharmony_ci
272fb726d48Sopenharmony_ci      html body h2 {
273fb726d48Sopenharmony_ci        font-weight: 410;
274fb726d48Sopenharmony_ci        font-size: 1.74em;
275fb726d48Sopenharmony_ci        padding-bottom: 0.2em;
276fb726d48Sopenharmony_ci      }
277fb726d48Sopenharmony_ci
278fb726d48Sopenharmony_ci      html body h3 {
279fb726d48Sopenharmony_ci        font-size: 1.6em;
280fb726d48Sopenharmony_ci        font-weight: 501;
281fb726d48Sopenharmony_ci      }
282fb726d48Sopenharmony_ci
283fb726d48Sopenharmony_ci      html body h4 {
284fb726d48Sopenharmony_ci        font-size: 1.26em;
285fb726d48Sopenharmony_ci        font-weight: 601;
286fb726d48Sopenharmony_ci      }
287fb726d48Sopenharmony_ci
288fb726d48Sopenharmony_ci      html body h5 {
289fb726d48Sopenharmony_ci        font-size: 1.2em;
290fb726d48Sopenharmony_ci        font-weight: 601;
291fb726d48Sopenharmony_ci      }
292fb726d48Sopenharmony_ci
293fb726d48Sopenharmony_ci      html body h6 {
294fb726d48Sopenharmony_ci        font-size: 0.9em;
295fb726d48Sopenharmony_ci        font-weight: 601;
296fb726d48Sopenharmony_ci      }
297fb726d48Sopenharmony_ci
298fb726d48Sopenharmony_ci      html body h1,
299fb726d48Sopenharmony_ci      html body h2,
300fb726d48Sopenharmony_ci      html body h3,
301fb726d48Sopenharmony_ci      html body h4,
302fb726d48Sopenharmony_ci      html body h5 {
303fb726d48Sopenharmony_ci        font-weight: 601;
304fb726d48Sopenharmony_ci      }
305fb726d48Sopenharmony_ci
306fb726d48Sopenharmony_ci      html body h5 {
307fb726d48Sopenharmony_ci        font-size: 0.9em;
308fb726d48Sopenharmony_ci      }
309fb726d48Sopenharmony_ci
310fb726d48Sopenharmony_ci      html body h6 {
311fb726d48Sopenharmony_ci        color: #5c5c5c;
312fb726d48Sopenharmony_ci      }
313fb726d48Sopenharmony_ci
314fb726d48Sopenharmony_ci      html body strong {
315fb726d48Sopenharmony_ci        color: #090909;
316fb726d48Sopenharmony_ci      }
317fb726d48Sopenharmony_ci
318fb726d48Sopenharmony_ci      html body del {
319fb726d48Sopenharmony_ci        color: #525252;
320fb726d48Sopenharmony_ci      }
321fb726d48Sopenharmony_ci
322fb726d48Sopenharmony_ci      html body a:not([href]) {
323fb726d48Sopenharmony_ci        color: inherit;
324fb726d48Sopenharmony_ci        text-decoration: none;
325fb726d48Sopenharmony_ci      }
326fb726d48Sopenharmony_ci
327fb726d48Sopenharmony_ci      html body a {
328fb726d48Sopenharmony_ci        color: #0192da;
329fb726d48Sopenharmony_ci        text-decoration: none;
330fb726d48Sopenharmony_ci      }
331fb726d48Sopenharmony_ci
332fb726d48Sopenharmony_ci      html body a:hover {
333fb726d48Sopenharmony_ci        color: #029dea;
334fb726d48Sopenharmony_ci        text-decoration: none;
335fb726d48Sopenharmony_ci      }
336fb726d48Sopenharmony_ci
337fb726d48Sopenharmony_ci      html body img {
338fb726d48Sopenharmony_ci        max-width: 99%;
339fb726d48Sopenharmony_ci      }
340fb726d48Sopenharmony_ci
341fb726d48Sopenharmony_ci      html body > p {
342fb726d48Sopenharmony_ci        margin-top: 1px;
343fb726d48Sopenharmony_ci        margin-bottom: 15px;
344fb726d48Sopenharmony_ci        word-wrap: break-word;
345fb726d48Sopenharmony_ci      }
346fb726d48Sopenharmony_ci
347fb726d48Sopenharmony_ci      html body > ul,
348fb726d48Sopenharmony_ci      html body > ol {
349fb726d48Sopenharmony_ci        margin-bottom: 15px;
350fb726d48Sopenharmony_ci      }
351fb726d48Sopenharmony_ci
352fb726d48Sopenharmony_ci      html body ul,
353fb726d48Sopenharmony_ci      html body ol {
354fb726d48Sopenharmony_ci        padding-left: 1.9em;
355fb726d48Sopenharmony_ci      }
356fb726d48Sopenharmony_ci
357fb726d48Sopenharmony_ci      html body ul.no-list,
358fb726d48Sopenharmony_ci      html body ol.no-list {
359fb726d48Sopenharmony_ci        padding: 0px;
360fb726d48Sopenharmony_ci        list-style-type: none;
361fb726d48Sopenharmony_ci      }
362fb726d48Sopenharmony_ci
363fb726d48Sopenharmony_ci      html body ul ul,
364fb726d48Sopenharmony_ci      html body ul ol,
365fb726d48Sopenharmony_ci      html body ol ol,
366fb726d48Sopenharmony_ci      html body ol ul {
367fb726d48Sopenharmony_ci        margin-top: 1px;
368fb726d48Sopenharmony_ci        margin-bottom: 1px;
369fb726d48Sopenharmony_ci      }
370fb726d48Sopenharmony_ci
371fb726d48Sopenharmony_ci      html body li {
372fb726d48Sopenharmony_ci        margin-bottom: 1px;
373fb726d48Sopenharmony_ci      }
374fb726d48Sopenharmony_ci
375fb726d48Sopenharmony_ci      html body li.task-list-item {
376fb726d48Sopenharmony_ci        list-style: none;
377fb726d48Sopenharmony_ci      }
378fb726d48Sopenharmony_ci
379fb726d48Sopenharmony_ci      html body li > p {
380fb726d48Sopenharmony_ci        margin-top: 1px;
381fb726d48Sopenharmony_ci        margin-bottom: 1px;
382fb726d48Sopenharmony_ci      }
383fb726d48Sopenharmony_ci
384fb726d48Sopenharmony_ci      html body .task-list-item-checkbox {
385fb726d48Sopenharmony_ci        margin: 0 0.3em 0.24em -1.7em;
386fb726d48Sopenharmony_ci        vertical-align: middle;
387fb726d48Sopenharmony_ci      }
388fb726d48Sopenharmony_ci
389fb726d48Sopenharmony_ci      html body .task-list-item-checkbox:hover {
390fb726d48Sopenharmony_ci        cursor: pointer;
391fb726d48Sopenharmony_ci      }
392fb726d48Sopenharmony_ci
393fb726d48Sopenharmony_ci      html body blockquote {
394fb726d48Sopenharmony_ci        padding: 0.1px 15px 0 0.1px;
395fb726d48Sopenharmony_ci        font-size: inherit;
396fb726d48Sopenharmony_ci        color: #5c5c5c;
397fb726d48Sopenharmony_ci        margin: 16px 0.1px 0 0.1px;
398fb726d48Sopenharmony_ci        border-left: 3px solid #cbc9c9;
399fb726d48Sopenharmony_ci        background-color: #e8e6e6;
400fb726d48Sopenharmony_ci      }
401fb726d48Sopenharmony_ci
402fb726d48Sopenharmony_ci      html body blockquote > :first-child {
403fb726d48Sopenharmony_ci        margin-top: 0.2px;
404fb726d48Sopenharmony_ci      }
405fb726d48Sopenharmony_ci
406fb726d48Sopenharmony_ci      html body blockquote > :last-child {
407fb726d48Sopenharmony_ci        margin-bottom: 0.1px;
408fb726d48Sopenharmony_ci      }
409fb726d48Sopenharmony_ci
410fb726d48Sopenharmony_ci      html body hr {
411fb726d48Sopenharmony_ci        height: 5px;
412fb726d48Sopenharmony_ci        background-color: #cbcaca;
413fb726d48Sopenharmony_ci        margin: 32px 0 0.1px 0;
414fb726d48Sopenharmony_ci        border: 0 none;
415fb726d48Sopenharmony_ci      }
416fb726d48Sopenharmony_ci
417fb726d48Sopenharmony_ci      html body table {
418fb726d48Sopenharmony_ci        overflow: auto;
419fb726d48Sopenharmony_ci        border-collapse: collapse;
420fb726d48Sopenharmony_ci        margin: 15px 0.1px 20px 0.1px;
421fb726d48Sopenharmony_ci        border-spacing: 0;
422fb726d48Sopenharmony_ci      }
423fb726d48Sopenharmony_ci
424fb726d48Sopenharmony_ci      html body table th {
425fb726d48Sopenharmony_ci        font-weight: bold;
426fb726d48Sopenharmony_ci        color: #000000;
427fb726d48Sopenharmony_ci      }
428fb726d48Sopenharmony_ci
429fb726d48Sopenharmony_ci      html body table td,
430fb726d48Sopenharmony_ci      html body table th {
431fb726d48Sopenharmony_ci        border: 1px solid #d6d6d6;
432fb726d48Sopenharmony_ci        padding: 2px 14px;
433fb726d48Sopenharmony_ci      }
434fb726d48Sopenharmony_ci
435fb726d48Sopenharmony_ci      html body dl {
436fb726d48Sopenharmony_ci        padding: 0px;
437fb726d48Sopenharmony_ci      }
438fb726d48Sopenharmony_ci
439fb726d48Sopenharmony_ci      html body dl dt {
440fb726d48Sopenharmony_ci        padding: 0px;
441fb726d48Sopenharmony_ci        margin-top: 15px;
442fb726d48Sopenharmony_ci        font-size: 0.9em;
443fb726d48Sopenharmony_ci        font-style: italic;
444fb726d48Sopenharmony_ci        font-weight: bold;
445fb726d48Sopenharmony_ci      }
446fb726d48Sopenharmony_ci
447fb726d48Sopenharmony_ci      html body dl dd {
448fb726d48Sopenharmony_ci        padding: 0px 17px;
449fb726d48Sopenharmony_ci        margin-bottom: 17px;
450fb726d48Sopenharmony_ci      }
451fb726d48Sopenharmony_ci
452fb726d48Sopenharmony_ci      html body code {
453fb726d48Sopenharmony_ci        font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
454fb726d48Sopenharmony_ci        font-size: 0.86em !important;
455fb726d48Sopenharmony_ci        color: #000000;
456fb726d48Sopenharmony_ci        background-color: #f0f0f0;
457fb726d48Sopenharmony_ci        border-radius: 4px;
458fb726d48Sopenharmony_ci        padding: 0.3em 0px;
459fb726d48Sopenharmony_ci      }
460fb726d48Sopenharmony_ci
461fb726d48Sopenharmony_ci      html body code::before,
462fb726d48Sopenharmony_ci      html body code::after {
463fb726d48Sopenharmony_ci        letter-spacing: -0.1em;
464fb726d48Sopenharmony_ci        content: '\00a0';
465fb726d48Sopenharmony_ci      }
466fb726d48Sopenharmony_ci
467fb726d48Sopenharmony_ci      html body pre > code {
468fb726d48Sopenharmony_ci        padding: 1px;
469fb726d48Sopenharmony_ci        margin: 0px;
470fb726d48Sopenharmony_ci        font-size: 0.86em !important;
471fb726d48Sopenharmony_ci        word-break: normal;
472fb726d48Sopenharmony_ci        white-space: pre;
473fb726d48Sopenharmony_ci        background: transparent;
474fb726d48Sopenharmony_ci        border: 0px;
475fb726d48Sopenharmony_ci      }
476fb726d48Sopenharmony_ci
477fb726d48Sopenharmony_ci      html body .highlight {
478fb726d48Sopenharmony_ci        margin-bottom: 17px;
479fb726d48Sopenharmony_ci      }
480fb726d48Sopenharmony_ci
481fb726d48Sopenharmony_ci      html body .highlight pre,
482fb726d48Sopenharmony_ci      html body pre {
483fb726d48Sopenharmony_ci        padding: 0.9em;
484fb726d48Sopenharmony_ci        overflow: auto;
485fb726d48Sopenharmony_ci        font-size: 0.86em !important;
486fb726d48Sopenharmony_ci        line-height: 1.46;
487fb726d48Sopenharmony_ci        border: #d6d6d6;
488fb726d48Sopenharmony_ci        border-radius: 4px;
489fb726d48Sopenharmony_ci      }
490fb726d48Sopenharmony_ci
491fb726d48Sopenharmony_ci      html body .highlight pre {
492fb726d48Sopenharmony_ci        margin-bottom: 0px;
493fb726d48Sopenharmony_ci        word-break: normal;
494fb726d48Sopenharmony_ci      }
495fb726d48Sopenharmony_ci
496fb726d48Sopenharmony_ci      html body pre code,
497fb726d48Sopenharmony_ci      html body pre tt {
498fb726d48Sopenharmony_ci        display: inline;
499fb726d48Sopenharmony_ci        max-width: initial;
500fb726d48Sopenharmony_ci        padding: 1px;
501fb726d48Sopenharmony_ci        margin: 1px;
502fb726d48Sopenharmony_ci        overflow: initial;
503fb726d48Sopenharmony_ci        line-height: inherit;
504fb726d48Sopenharmony_ci        word-wrap: normal;
505fb726d48Sopenharmony_ci        background-color: transparent;
506fb726d48Sopenharmony_ci        border: 1px;
507fb726d48Sopenharmony_ci      }
508fb726d48Sopenharmony_ci
509fb726d48Sopenharmony_ci      html body pre code:before,
510fb726d48Sopenharmony_ci      html body pre tt:before,
511fb726d48Sopenharmony_ci      html body pre code:after,
512fb726d48Sopenharmony_ci      html body pre tt:after {
513fb726d48Sopenharmony_ci        content: normal;
514fb726d48Sopenharmony_ci      }
515fb726d48Sopenharmony_ci
516fb726d48Sopenharmony_ci      html body p,
517fb726d48Sopenharmony_ci      html body blockquote,
518fb726d48Sopenharmony_ci      html body ul,
519fb726d48Sopenharmony_ci      html body ol,
520fb726d48Sopenharmony_ci      html body dl,
521fb726d48Sopenharmony_ci      html body pre {
522fb726d48Sopenharmony_ci        margin-top: 1px;
523fb726d48Sopenharmony_ci        margin-bottom: 17px;
524fb726d48Sopenharmony_ci      }
525fb726d48Sopenharmony_ci
526fb726d48Sopenharmony_ci      html body kbd {
527fb726d48Sopenharmony_ci        color: #000000;
528fb726d48Sopenharmony_ci        border: 3px solid #d6d6d6;
529fb726d48Sopenharmony_ci        border-bottom: 3px solid #c7c7c7;
530fb726d48Sopenharmony_ci        padding: 3px 5px;
531fb726d48Sopenharmony_ci        background-color: #f0f0f0;
532fb726d48Sopenharmony_ci        border-radius: 2px;
533fb726d48Sopenharmony_ci      }
534fb726d48Sopenharmony_ci
535fb726d48Sopenharmony_ci      @media print {
536fb726d48Sopenharmony_ci        html body {
537fb726d48Sopenharmony_ci          background-color: #ffffff;
538fb726d48Sopenharmony_ci        }
539fb726d48Sopenharmony_ci
540fb726d48Sopenharmony_ci        html body h1,
541fb726d48Sopenharmony_ci        html body h2,
542fb726d48Sopenharmony_ci        html body h3,
543fb726d48Sopenharmony_ci        html body h4,
544fb726d48Sopenharmony_ci        html body h5,
545fb726d48Sopenharmony_ci        html body h6 {
546fb726d48Sopenharmony_ci          color: #000000;
547fb726d48Sopenharmony_ci          page-break-after: avoid;
548fb726d48Sopenharmony_ci        }
549fb726d48Sopenharmony_ci
550fb726d48Sopenharmony_ci        html body blockquote {
551fb726d48Sopenharmony_ci          color: #5c5c53;
552fb726d48Sopenharmony_ci        }
553fb726d48Sopenharmony_ci
554fb726d48Sopenharmony_ci        html body pre {
555fb726d48Sopenharmony_ci          page-break-inside: avoid;
556fb726d48Sopenharmony_ci        }
557fb726d48Sopenharmony_ci
558fb726d48Sopenharmony_ci        html body table {
559fb726d48Sopenharmony_ci          display: table;
560fb726d48Sopenharmony_ci        }
561fb726d48Sopenharmony_ci
562fb726d48Sopenharmony_ci        html body img {
563fb726d48Sopenharmony_ci          display: block;
564fb726d48Sopenharmony_ci          max-width: 99%;
565fb726d48Sopenharmony_ci          max-height: 99%;
566fb726d48Sopenharmony_ci        }
567fb726d48Sopenharmony_ci
568fb726d48Sopenharmony_ci        html body pre,
569fb726d48Sopenharmony_ci        html body code {
570fb726d48Sopenharmony_ci          word-wrap: break-word;
571fb726d48Sopenharmony_ci          white-space: pre;
572fb726d48Sopenharmony_ci        }
573fb726d48Sopenharmony_ci      }
574fb726d48Sopenharmony_ci
575fb726d48Sopenharmony_ci      .smartperf-preview {
576fb726d48Sopenharmony_ci        width: 99%;
577fb726d48Sopenharmony_ci        height: 99%;
578fb726d48Sopenharmony_ci        box-sizing: border-box;
579fb726d48Sopenharmony_ci      }
580fb726d48Sopenharmony_ci
581fb726d48Sopenharmony_ci      .smartperf-preview .pagebreak,
582fb726d48Sopenharmony_ci      .smartperf-preview .newpage {
583fb726d48Sopenharmony_ci        page-break-before: always;
584fb726d48Sopenharmony_ci      }
585fb726d48Sopenharmony_ci
586fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers {
587fb726d48Sopenharmony_ci        position: relative;
588fb726d48Sopenharmony_ci        padding-left: 3.7em;
589fb726d48Sopenharmony_ci        counter-reset: linenumber;
590fb726d48Sopenharmony_ci      }
591fb726d48Sopenharmony_ci
592fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers > code {
593fb726d48Sopenharmony_ci        position: relative;
594fb726d48Sopenharmony_ci      }
595fb726d48Sopenharmony_ci
596fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows {
597fb726d48Sopenharmony_ci        position: absolute;
598fb726d48Sopenharmony_ci        pointer-events: none;
599fb726d48Sopenharmony_ci        top: 0.9em;
600fb726d48Sopenharmony_ci        font-size: 99%;
601fb726d48Sopenharmony_ci        left: 1px;
602fb726d48Sopenharmony_ci        width: 3em;
603fb726d48Sopenharmony_ci        letter-spacing: -1px;
604fb726d48Sopenharmony_ci        border-right: 1px solid #999;
605fb726d48Sopenharmony_ci        -webkit-user-select: none;
606fb726d48Sopenharmony_ci        -moz-user-select: none;
607fb726d48Sopenharmony_ci        -ms-user-select: none;
608fb726d48Sopenharmony_ci        user-select: none;
609fb726d48Sopenharmony_ci      }
610fb726d48Sopenharmony_ci
611fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows > span {
612fb726d48Sopenharmony_ci        pointer-events: none;
613fb726d48Sopenharmony_ci        display: block;
614fb726d48Sopenharmony_ci        counter-increment: linenumber;
615fb726d48Sopenharmony_ci      }
616fb726d48Sopenharmony_ci
617fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows > span:before {
618fb726d48Sopenharmony_ci        content: counter(linenumber);
619fb726d48Sopenharmony_ci        color: #999;
620fb726d48Sopenharmony_ci        display: block;
621fb726d48Sopenharmony_ci        padding-right: 0.79em;
622fb726d48Sopenharmony_ci        text-align: right;
623fb726d48Sopenharmony_ci      }
624fb726d48Sopenharmony_ci
625fb726d48Sopenharmony_ci      .smartperf-preview .mathjax-exps .MathJax_Display {
626fb726d48Sopenharmony_ci        text-align: center !important;
627fb726d48Sopenharmony_ci      }
628fb726d48Sopenharmony_ci
629fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .btn-group {
630fb726d48Sopenharmony_ci        display: none;
631fb726d48Sopenharmony_ci      }
632fb726d48Sopenharmony_ci
633fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .status {
634fb726d48Sopenharmony_ci        display: none;
635fb726d48Sopenharmony_ci      }
636fb726d48Sopenharmony_ci
637fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .output-div {
638fb726d48Sopenharmony_ci        margin-bottom: 16px;
639fb726d48Sopenharmony_ci      }
640fb726d48Sopenharmony_ci
641fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar {
642fb726d48Sopenharmony_ci        width: 8px;
643fb726d48Sopenharmony_ci      }
644fb726d48Sopenharmony_ci
645fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar-track {
646fb726d48Sopenharmony_ci        border-radius: 9px;
647fb726d48Sopenharmony_ci        background-color: transparent;
648fb726d48Sopenharmony_ci      }
649fb726d48Sopenharmony_ci
650fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar-thumb {
651fb726d48Sopenharmony_ci        border-radius: 6px;
652fb726d48Sopenharmony_ci        background-color: rgba(150, 150, 150, 1);
653fb726d48Sopenharmony_ci        border: 4px solid rgba(150, 150, 150, 1);
654fb726d48Sopenharmony_ci        background-clip: content-box;
655fb726d48Sopenharmony_ci      }
656fb726d48Sopenharmony_ci
657fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) {
658fb726d48Sopenharmony_ci        position: relative;
659fb726d48Sopenharmony_ci        width: 99%;
660fb726d48Sopenharmony_ci        height: 99%;
661fb726d48Sopenharmony_ci        top: 1px;
662fb726d48Sopenharmony_ci        left: 1px;
663fb726d48Sopenharmony_ci        margin: 1px;
664fb726d48Sopenharmony_ci        padding: 1px;
665fb726d48Sopenharmony_ci        overflow: auto;
666fb726d48Sopenharmony_ci      }
667fb726d48Sopenharmony_ci
668fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) .smartperf-preview {
669fb726d48Sopenharmony_ci        position: relative;
670fb726d48Sopenharmony_ci        top: 1px;
671fb726d48Sopenharmony_ci      }
672fb726d48Sopenharmony_ci
673fb726d48Sopenharmony_ci      @media screen and (min-width: 914px) {
674fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
675fb726d48Sopenharmony_ci          padding: 2em calc(50% - 458px + 2em);
676fb726d48Sopenharmony_ci        }
677fb726d48Sopenharmony_ci      }
678fb726d48Sopenharmony_ci
679fb726d48Sopenharmony_ci      @media screen and (max-width: 914px) {
680fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
681fb726d48Sopenharmony_ci          padding: 1.9em;
682fb726d48Sopenharmony_ci        }
683fb726d48Sopenharmony_ci      }
684fb726d48Sopenharmony_ci
685fb726d48Sopenharmony_ci      @media screen and (max-width: 450px) {
686fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
687fb726d48Sopenharmony_ci          font-size: 15px !important;
688fb726d48Sopenharmony_ci          padding: 1.1em;
689fb726d48Sopenharmony_ci        }
690fb726d48Sopenharmony_ci      }
691fb726d48Sopenharmony_ci
692fb726d48Sopenharmony_ci      @media print {
693fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
694fb726d48Sopenharmony_ci          display: none;
695fb726d48Sopenharmony_ci        }
696fb726d48Sopenharmony_ci      }
697fb726d48Sopenharmony_ci
698fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
699fb726d48Sopenharmony_ci        position: fixed;
700fb726d48Sopenharmony_ci        bottom: 9px;
701fb726d48Sopenharmony_ci        left: 9px;
702fb726d48Sopenharmony_ci        font-size: 28px;
703fb726d48Sopenharmony_ci        cursor: pointer;
704fb726d48Sopenharmony_ci        color: inherit;
705fb726d48Sopenharmony_ci        z-index: 99;
706fb726d48Sopenharmony_ci        width: 31px;
707fb726d48Sopenharmony_ci        text-align: center;
708fb726d48Sopenharmony_ci        opacity: 0.5;
709fb726d48Sopenharmony_ci      }
710fb726d48Sopenharmony_ci
711fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn {
712fb726d48Sopenharmony_ci        opacity: 1;
713fb726d48Sopenharmony_ci      }
714fb726d48Sopenharmony_ci
715fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc {
716fb726d48Sopenharmony_ci        position: fixed;
717fb726d48Sopenharmony_ci        top: 1px;
718fb726d48Sopenharmony_ci        left: 1px;
719fb726d48Sopenharmony_ci        width: 300px;
720fb726d48Sopenharmony_ci        height: 99%;
721fb726d48Sopenharmony_ci        padding: 32px 0 48px 0;
722fb726d48Sopenharmony_ci        font-size: 14px;
723fb726d48Sopenharmony_ci        box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33);
724fb726d48Sopenharmony_ci        box-sizing: border-box;
725fb726d48Sopenharmony_ci        overflow: auto;
726fb726d48Sopenharmony_ci        background-color: inherit;
727fb726d48Sopenharmony_ci      }
728fb726d48Sopenharmony_ci
729fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar {
730fb726d48Sopenharmony_ci        width: 9px;
731fb726d48Sopenharmony_ci      }
732fb726d48Sopenharmony_ci
733fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track {
734fb726d48Sopenharmony_ci        border-radius: 11px;
735fb726d48Sopenharmony_ci        background-color: transparent;
736fb726d48Sopenharmony_ci      }
737fb726d48Sopenharmony_ci
738fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb {
739fb726d48Sopenharmony_ci        border-radius: 6px;
740fb726d48Sopenharmony_ci        background-color: rgba(150, 150, 150, 0.66);
741fb726d48Sopenharmony_ci        border: 3px solid rgba(150, 150, 150, 0.66);
742fb726d48Sopenharmony_ci        background-clip: content-box;
743fb726d48Sopenharmony_ci      }
744fb726d48Sopenharmony_ci
745fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a {
746fb726d48Sopenharmony_ci        text-decoration: none;
747fb726d48Sopenharmony_ci      }
748fb726d48Sopenharmony_ci
749fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
750fb726d48Sopenharmony_ci        padding: 1px 1.7em;
751fb726d48Sopenharmony_ci        margin-top: 0.9em;
752fb726d48Sopenharmony_ci      }
753fb726d48Sopenharmony_ci
754fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li {
755fb726d48Sopenharmony_ci        margin-bottom: 0.8em;
756fb726d48Sopenharmony_ci      }
757fb726d48Sopenharmony_ci
758fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
759fb726d48Sopenharmony_ci        list-style-type: none;
760fb726d48Sopenharmony_ci      }
761fb726d48Sopenharmony_ci
762fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
763fb726d48Sopenharmony_ci        left: 301px;
764fb726d48Sopenharmony_ci        width: calc(100% - 300px);
765fb726d48Sopenharmony_ci        padding: 2em calc(50% - 457px - 150px);
766fb726d48Sopenharmony_ci        margin: 1px;
767fb726d48Sopenharmony_ci        box-sizing: border-box;
768fb726d48Sopenharmony_ci      }
769fb726d48Sopenharmony_ci
770fb726d48Sopenharmony_ci      @media screen and (max-width: 1274px) {
771fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
772fb726d48Sopenharmony_ci          padding: 1.9em;
773fb726d48Sopenharmony_ci        }
774fb726d48Sopenharmony_ci      }
775fb726d48Sopenharmony_ci
776fb726d48Sopenharmony_ci      @media screen and (max-width: 450px) {
777fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
778fb726d48Sopenharmony_ci          width: 99%;
779fb726d48Sopenharmony_ci        }
780fb726d48Sopenharmony_ci      }
781fb726d48Sopenharmony_ci
782fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]):not([hsst]) .smartperf-preview {
783fb726d48Sopenharmony_ci        left: 50%;
784fb726d48Sopenharmony_ci        transform: translateX(-50%);
785fb726d48Sopenharmony_ci      }
786fb726d48Sopenharmony_ci
787fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc {
788fb726d48Sopenharmony_ci        display: none;
789fb726d48Sopenharmony_ci      }
790fb726d48Sopenharmony_ci    </style>
791fb726d48Sopenharmony_ci  </head>
792fb726d48Sopenharmony_ci  <body for="html-export" id="body">
793fb726d48Sopenharmony_ci    <div class="smartperf smartperf-preview">
794fb726d48Sopenharmony_ci      <h1 class="mume-header fontColor">SmartPerf 编译部署指导文档</h1>
795fb726d48Sopenharmony_ci
796fb726d48Sopenharmony_ci      <h2 class="mume-header fontColor">编译环境搭建</h2>
797fb726d48Sopenharmony_ci
798fb726d48Sopenharmony_ci      <p class="fontColor">注意:在linux编译环境安装时以root或者其他 sudo 用户身份运行下面的命令。</p>
799fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor">node 环境安装</h3>
800fb726d48Sopenharmony_ci
801fb726d48Sopenharmony_ci      <h5 class="mume-header fontColor">下载Node js安装包(windows推荐, linux跳过此步骤)</h5>
802fb726d48Sopenharmony_ci
803fb726d48Sopenharmony_ci      <p class="fontColor">
804fb726d48Sopenharmony_ci        从网站下载node js安装包
805fb726d48Sopenharmony_ci        <a href="https://nodejs.org/en/download/current/%E3%80%82">https://nodejs.org/en/download/current/。</a>
806fb726d48Sopenharmony_ci      </p>
807fb726d48Sopenharmony_ci      <h5 class="mume-header fontColor">安装nodejs</h5>
808fb726d48Sopenharmony_ci
809fb726d48Sopenharmony_ci      <ul class="fontColor">
810fb726d48Sopenharmony_ci        <li>
811fb726d48Sopenharmony_ci          ubuntu 20.04 与Debian 11系统中,直接用apt-get安装,先切换到 root用户下,命令如下(node 版本 &gt;= 16.15.1 npm
812fb726d48Sopenharmony_ci          版本 &gt;= 8.13.2)
813fb726d48Sopenharmony_ci        </li>
814fb726d48Sopenharmony_ci      </ul>
815fb726d48Sopenharmony_ci      <pre data-role="codeBlock" data-info="" class="fontColor light smartperf-"><code class="fontColor">        sudo su
816fb726d48Sopenharmony_ci        apt-get update 
817fb726d48Sopenharmony_ci        apt-get install nodejs npm
818fb726d48Sopenharmony_ci</code></pre>
819fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/install_node.png" alt="" /></p>
820fb726d48Sopenharmony_ci      <ul class="fontColor">
821fb726d48Sopenharmony_ci        <li>centos 系统中使用yum安装,先切换到root用户下,命令如下:</li>
822fb726d48Sopenharmony_ci      </ul>
823fb726d48Sopenharmony_ci      <pre data-role="codeBlock" data-info="" class="fontColor light smartperf-"><code class="fontColor">        sudo su
824fb726d48Sopenharmony_ci        sudo yum -y install nodejs npm 
825fb726d48Sopenharmony_ci</code></pre>
826fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/yum_install_node.png" alt="" /></p>
827fb726d48Sopenharmony_ci      <ul class="fontColor">
828fb726d48Sopenharmony_ci        <li>
829fb726d48Sopenharmony_ci          <p class="fontColor">windows系统中, 用安装包一路next即可</p>
830fb726d48Sopenharmony_ci        </li>
831fb726d48Sopenharmony_ci        <li>
832fb726d48Sopenharmony_ci          <p class="fontColor">安装完成后运行检查是否安装成功</p>
833fb726d48Sopenharmony_ci        </li>
834fb726d48Sopenharmony_ci      </ul>
835fb726d48Sopenharmony_ci      <pre data-role="codeBlock" data-info="" class="fontColor light smartperf-"><code class="fontColor">        node -v
836fb726d48Sopenharmony_ci        npm -v
837fb726d48Sopenharmony_ci</code></pre>
838fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/check_version.png" alt="" /></p>
839fb726d48Sopenharmony_ci      <p class="fontColor">出现版本号就代表安装成功了。</p>
840fb726d48Sopenharmony_ci      <h5 class="mume-header fontColor">更换npm源</h5>
841fb726d48Sopenharmony_ci
842fb726d48Sopenharmony_ci      <pre
843fb726d48Sopenharmony_ci        data-role="codeBlock"
844fb726d48Sopenharmony_ci        data-info=""
845fb726d48Sopenharmony_ci        class="fontColor light smartperf-"><code class="fontColor">        npm config set registry http://registry.npmmirror.com
846fb726d48Sopenharmony_ci</code></pre>
847fb726d48Sopenharmony_ci      <h5 class="mume-header fontColor">安装tsc typeScript 编译器</h5>
848fb726d48Sopenharmony_ci
849fb726d48Sopenharmony_ci      <p class="fontColor">直接使用npm 安装运行命令。</p>
850fb726d48Sopenharmony_ci      <pre
851fb726d48Sopenharmony_ci        data-role="codeBlock"
852fb726d48Sopenharmony_ci        data-info=""
853fb726d48Sopenharmony_ci        class="fontColor light smartperf-"><code class="fontColor">        npm install -g typescript
854fb726d48Sopenharmony_ci        tsc -v
855fb726d48Sopenharmony_ci</code></pre>
856fb726d48Sopenharmony_ci      <p class="fontColor">
857fb726d48Sopenharmony_ci        验证安装完成:
858fb726d48Sopenharmony_ci        <br />
859fb726d48Sopenharmony_ci        <img src="../figures/deploy/install_tsc.png" alt="" />
860fb726d48Sopenharmony_ci      </p>
861fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor">go 编译环境安装</h3>
862fb726d48Sopenharmony_ci
863fb726d48Sopenharmony_ci      <ul class="fontColor">
864fb726d48Sopenharmony_ci        <li>ubuntu 环境下直接使用apt安装,以root用户执行(go 版本 &gt;= 1.13.8 )</li>
865fb726d48Sopenharmony_ci      </ul>
866fb726d48Sopenharmony_ci      <pre
867fb726d48Sopenharmony_ci        data-role="codeBlock"
868fb726d48Sopenharmony_ci        data-info=""
869fb726d48Sopenharmony_ci        class="fontColor light smartperf-"><code class="fontColor">        apt-get install golang-go
870fb726d48Sopenharmony_ci</code></pre>
871fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/install_golang.png" alt="" /></p>
872fb726d48Sopenharmony_ci      <ul class="fontColor">
873fb726d48Sopenharmony_ci        <li>centos系统中使用yum安装,先切换到root用户下,命令如下:</li>
874fb726d48Sopenharmony_ci      </ul>
875fb726d48Sopenharmony_ci      <pre data-role="codeBlock" data-info="" class="fontColor light smartperf-"><code class="fontColor">        sudo su
876fb726d48Sopenharmony_ci        sudo yum -y install go 
877fb726d48Sopenharmony_ci</code></pre>
878fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/yum_install_go.png" alt="" /></p>
879fb726d48Sopenharmony_ci      <ul class="fontColor">
880fb726d48Sopenharmony_ci        <li>
881fb726d48Sopenharmony_ci          <p class="fontColor">windows 系统下从官网下载安装包, 一路next 完成 安装即可</p>
882fb726d48Sopenharmony_ci        </li>
883fb726d48Sopenharmony_ci        <li>
884fb726d48Sopenharmony_ci          <p class="fontColor">安装完成后 命令行运行验证是否安装成功</p>
885fb726d48Sopenharmony_ci        </li>
886fb726d48Sopenharmony_ci      </ul>
887fb726d48Sopenharmony_ci      <pre
888fb726d48Sopenharmony_ci        data-role="codeBlock"
889fb726d48Sopenharmony_ci        data-info=""
890fb726d48Sopenharmony_ci        class="fontColor light smartperf-"><code class="fontColor">        go version
891fb726d48Sopenharmony_ci</code></pre>
892fb726d48Sopenharmony_ci      <h2 class="mume-header fontColor">项目编译</h2>
893fb726d48Sopenharmony_ci
894fb726d48Sopenharmony_ci      <h4 class="mume-header fontColor">先下载sql.js的二进制包</h4>
895fb726d48Sopenharmony_ci
896fb726d48Sopenharmony_ci      <p class="fontColor">
897fb726d48Sopenharmony_ci        从如下
898fb726d48Sopenharmony_ci        <a href="https://github.com/sql-js/sql.js/releases/download/v1.6.2/sqljs-all.zip">
899fb726d48Sopenharmony_ci          https://github.com/sql-js/sql.js/releases/download/v1.6.2/sqljs-all.zip
900fb726d48Sopenharmony_ci        </a>
901fb726d48Sopenharmony_ci        获取到sql.js的二进制包。
902fb726d48Sopenharmony_ci        <br />
903fb726d48Sopenharmony_ci        将压缩包解压后, 将文件放置到项目third-party 目录下。
904fb726d48Sopenharmony_ci      </p>
905fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/third_party.png" alt="" /></p>
906fb726d48Sopenharmony_ci      <h4 class="mume-header fontColor">先编译获取trace_streamer 的二进制包</h4>
907fb726d48Sopenharmony_ci
908fb726d48Sopenharmony_ci      <p class="fontColor">
909fb726d48Sopenharmony_ci        参照:smartperf/trace_streamer/compile_trace_streamer.md 编译出wasm、linux、Windows版本的二进制文件。
910fb726d48Sopenharmony_ci        <br />
911fb726d48Sopenharmony_ci        将获取到二进制文件放入到项目bin目录下,如果项目目录中无bin目录 先创建bin目录。
912fb726d48Sopenharmony_ci        <br />
913fb726d48Sopenharmony_ci        然后将trace_streamer的二进制文件放入bin目录中。
914fb726d48Sopenharmony_ci      </p>
915fb726d48Sopenharmony_ci      <p class="fontColor">
916fb726d48Sopenharmony_ci        <img src="../figures/deploy/put_bin.png" alt="" />
917fb726d48Sopenharmony_ci        <br />
918fb726d48Sopenharmony_ci        <img src="../figures/deploy/bin_files.png" alt="" />
919fb726d48Sopenharmony_ci      </p>
920fb726d48Sopenharmony_ci      <h4 class="mume-header fontColor">代码编译(依赖于上面node环境 和 go环境)</h4>
921fb726d48Sopenharmony_ci
922fb726d48Sopenharmony_ci      <p class="fontColor">在项目目录安装项目依赖:</p>
923fb726d48Sopenharmony_ci      <pre
924fb726d48Sopenharmony_ci        data-role="codeBlock"
925fb726d48Sopenharmony_ci        data-info=""
926fb726d48Sopenharmony_ci        class="fontColor light smartperf-"><code class="fontColor">        npm install
927fb726d48Sopenharmony_ci</code></pre>
928fb726d48Sopenharmony_ci      <p class="fontColor">在项目目录下运行命令:</p>
929fb726d48Sopenharmony_ci      <pre
930fb726d48Sopenharmony_ci        data-role="codeBlock"
931fb726d48Sopenharmony_ci        data-info=""
932fb726d48Sopenharmony_ci        class="fontColor light smartperf-"><code class="fontColor">        npm run compile
933fb726d48Sopenharmony_ci</code></pre>
934fb726d48Sopenharmony_ci      <p class="fontColor">
935fb726d48Sopenharmony_ci        <img src="../figures/deploy/compile.png" alt="" />
936fb726d48Sopenharmony_ci        <br />
937fb726d48Sopenharmony_ci        编译成功后会有main 可执行文件生成。
938fb726d48Sopenharmony_ci      </p>
939fb726d48Sopenharmony_ci      <h2 class="mume-header fontColor">项目部署</h2>
940fb726d48Sopenharmony_ci
941fb726d48Sopenharmony_ci      <p class="fontColor">linux版本部署需要给trace_stream程序赋予执行权限,cd dist/bin 目录下,执行如下命令:</p>
942fb726d48Sopenharmony_ci      <pre
943fb726d48Sopenharmony_ci        data-role="codeBlock"
944fb726d48Sopenharmony_ci        data-info=""
945fb726d48Sopenharmony_ci        class="fontColor light smartperf-"><code class="fontColor">        chmod +x trace_streamer_*
946fb726d48Sopenharmony_ci</code></pre>
947fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/chomd+x.png" alt="" /></p>
948fb726d48Sopenharmony_ci      <p class="fontColor">
949fb726d48Sopenharmony_ci        直接运行 ./main 可执行程序,完成项目的部署。
950fb726d48Sopenharmony_ci        <br />
951fb726d48Sopenharmony_ci        <img src="../figures/deploy/run_main.png" alt="" />
952fb726d48Sopenharmony_ci      </p>
953fb726d48Sopenharmony_ci      <h2>访问项目</h2>
954fb726d48Sopenharmony_ci      <p class="fontColor">
955fb726d48Sopenharmony_ci        在浏览器上打开 https://[部署机器ip地址]:9000/application/
956fb726d48Sopenharmony_ci        <br />
957fb726d48Sopenharmony_ci        !!! 注意一定是https。
958fb726d48Sopenharmony_ci      </p>
959fb726d48Sopenharmony_ci      <p class="fontColor"><img src="../figures/deploy/visit_website.png" alt="" /></p>
960fb726d48Sopenharmony_ci      <p class="fontColor">
961fb726d48Sopenharmony_ci        备注:如果未出现如图所示网页.而是显示 无法访问此网站。
962fb726d48Sopenharmony_ci        <br />
963fb726d48Sopenharmony_ci        可以在window cmd 里执行telnet [部署机器ip地址] 9000。
964fb726d48Sopenharmony_ci        <br />
965fb726d48Sopenharmony_ci        如果显示端口连接失败 可能是防火墙未对9000 端口放开即可。
966fb726d48Sopenharmony_ci      </p>
967fb726d48Sopenharmony_ci    </div>
968fb726d48Sopenharmony_ci
969fb726d48Sopenharmony_ci    <script>
970fb726d48Sopenharmony_ci      window.onload = () => {
971fb726d48Sopenharmony_ci        let isDark = window.location.search;
972fb726d48Sopenharmony_ci        if (isDark.indexOf('?') !== -1) {
973fb726d48Sopenharmony_ci          isDark = isDark.substr(1, isDark.length - 1);
974fb726d48Sopenharmony_ci        }
975fb726d48Sopenharmony_ci        if (isDark === 'true') {
976fb726d48Sopenharmony_ci          document.getElementById('body').setAttribute('style', 'background-color:#272C34;');
977fb726d48Sopenharmony_ci          let header = document.getElementsByClassName('fontColor');
978fb726d48Sopenharmony_ci          for (let i = 0; i < header.length; i++) {
979fb726d48Sopenharmony_ci            header[i].style.color = '#fff';
980fb726d48Sopenharmony_ci          }
981fb726d48Sopenharmony_ci          let lightBackGround = document.getElementsByClassName('light');
982fb726d48Sopenharmony_ci          for (let i = 0; i < lightBackGround.length; i++) {
983fb726d48Sopenharmony_ci            lightBackGround[i].style.backgroundColor = '#32373F';
984fb726d48Sopenharmony_ci          }
985fb726d48Sopenharmony_ci        }
986fb726d48Sopenharmony_ci      };
987fb726d48Sopenharmony_ci    </script>
988fb726d48Sopenharmony_ci  </body>
989fb726d48Sopenharmony_ci</html>
990