-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
559 lines (293 loc) · 179 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>꧁༺自由天空༻꧂</title>
<subtitle>笔耕</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="https://969975553.gitee.io/"/>
<updated>2021-03-30T11:01:23.758Z</updated>
<id>https://969975553.gitee.io/</id>
<author>
<name>一潭清泓</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>hexo文章加密测试</title>
<link href="https://969975553.gitee.io/2021/03/30/hexo%E6%96%87%E7%AB%A0%E5%8A%A0%E5%AF%86%E6%B5%8B%E8%AF%95/"/>
<id>https://969975553.gitee.io/2021/03/30/hexo%E6%96%87%E7%AB%A0%E5%8A%A0%E5%AF%86%E6%B5%8B%E8%AF%95/</id>
<published>2021-03-30T02:01:40.000Z</published>
<updated>2021-03-30T11:01:23.758Z</updated>
<content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="密码错误,请重新输入" data-whm="文章不能被校验,不过您还是能看看解密后的内容"> <script id="hbeData" type="hbeData" data-hmacdigest="6b5835adc94648cf29310bd6f8d1eeeab310cfc983a6a1b5f188134bef896dbf">62acbf79d611428a844e3cfff6cf34897becaf2d9c34b517e6b8b67c36e92dd2f34f8a67cebacf4ddc1755bbd3210ebb8b74480f42eb217ae87991623274cb3e709cd1b47bd561f204a6060789f2a4818c63403b0129cd74fe9369b47ecdde1b091ce7911db6e7ccf6b48ec67c05bcae8ac73112f5c9bf593c5da0169de2f65ce48548b11935b7ad3be05ca5cace369d3ac7e5ad6d5ead0cf4c4b754017608c2bf1c823b44ec5a97d07f7e2746bf4d8cfe1bbf775ad5d6e8f16cc8a6a688ce2e41f6cf1db43c944bf65c2b5c726e238d0024f12eaa3cad3a784dda8024bee292292b07229502bd0ea788362e5fcc4975effa9ee02ed8cf2c968b0c31d7423a40acc7c2ba8d62dbd51cc9a57bc8f19d0ffef2ef88e76e693748c3f8483b97341e9507fd72e94c1b59538f47dc33cb1117a53adca22345af97fbb13c6df3c9feea3b64d225a2b066bd1de9df58c55dc363baa1d2fac41027a5893a7efde56d809afd9863597a69a63be8e78550891d31ae223c67704b71cea485622e3487b69f2453184d09da53a5ad359083eb006a26f608dafeeadf0203c22e0524b0749fdfae441307317d29557664126327d71b83a53b8f5e9e5b9629b5e07e5a1535bbb0f2afd19b72340d5ec4a3bbe1f978d736568736f22d42d4cb5239ce1953f185d6625f928ba6677e0f6660fd7b5e165c799e86c3ea018bab0b850e4ecfa4cbc3dfae47f23e3674b9775d82712a162c7f3b989f78632cfb8dd3c22c9cd37c8b009073694e0e98fd5ea36ea183252f01258c1e161131fd754fc9793391892a6ad13b37f6b31cd52902760643a0af4fc646d43fc31142a426b6b8508c6473fd8b572266f770ca199142da6d9e924f56a1798bca3832e485a6a91c1830f467f30fec5f891f60ac5f029e1ff713cb5ee3085199056c49dfaaf210a911cd21d073e4698a058b52059ec7bfff23429d8d788e99d6a6decea0fad2442f7c823c750b2395f47eaaadcaec0b4ccf56c3a705f184e57f3c9ee7f6cf609d4cedd8e6154969fd8d906206d1558c4ca2aa80f3602dc9de1d0d3c7f13f7d8c1506af39280e017bd95f5e4e824cae7deef82cbeed0ca61d1155dbf92f6839cde7139fcc5713eafd9c7952d52154a5a6ed273eb93e773c3b34916ba5855824dcd261c73f653a06a195b2ee6fdca170cf0248c0369533bdea2a477e0bdc4ab1dc5f40a3323daab8ffaec8b21c323fd5bc94cc9080e6844e9b809c91ca0df91e0f49d71cf6b63e896fb4c2814a689ed899dc301f27d6671b77ff5180d29976972d671148747461eb2d633d0e5574addfb6cff0b8619a2e65e90aa6e9ccc3265dd08cd759a11d356dbb57468dea6b9985dee7f3116f442ee4708a9259a079a60a6fdc5999defcd0bc373c2b6abed1e58b6c1846bdca700d88e97e057e0345c3b9d8289093a572407923336b4e8896ac6cc946b24c405fa5e1183e92be4f24398a776eec664c373e3c8788350d8f399c817ee4122b1af07c678a795122c4882cfa812b644b185d0112db61a214c10bcff1125b1468b49c38c83fefe24f3bd3a14af0b68da17f8e4bc7c39b32424ca549547967c661d8a3eedca5de39728a0463657fb57ed6080e009ce4a3f6bc226331b698ea52cf53e1c37ae692f2c3b745ca4776aa8adab7f4d7553ac5e20b007004ea05d62ca2aa76a48175308d28b315d7fb1abc36a88f29fb2586962f96108ec577c84021724d7843f476a594b8ae19b9472768f068bd3d4e7f25abe50f166ceed38d7b767102c51737a58690b18f6199d3e86259f73106b0f91f11cf88ef1eb1f8ffd29691932cb19048f8f9c6fdc836fa732ed5a2d6cc404aaa92d3c02c20d298f5422748b169d1e7630d7d578d3187348d6b3fc14d70580cb194f9f37bad82ec3758ad8e31ec4af4db3f63050d864d142606c75581930f7cb9eb55537b82b6615c8325ffd8c0e925feddaca45a5bedb7edc88c636d2f79ff185c6ab2bd57f5107acf2d0ba66c689ecb99d2a1b7975a95ed765f3ee29a74fa017c4fd0198e2c51d97e2221376713d07a8b2dd3f0a3016e3b4e565e115695cc84fd87b35d9067f2b63db07f7a8567132701106379fe57aeba3ebbeddd6437f6e8ca3ce13a0cd436cfb00ac29afb66eb7e99ad13a98859970f6fd186621e9a8676518a63abec27839a94da0c9f651d99b29127bb53eb8d3ffad1ad18ad67db42e40c5eeda2875472c2959900dc5491848c20e7c2f6550bd2903ca1da7cae4abc886954ce13309ae638362a17fac1c8a6af150e4a494fc899608ce2487583bfa989835ff5db9e2b383eff8f06289c4e26398b1f98ae6cf4fc06a7a798366a386d6b65e8f384521e0b38febd48e3f0ec15b7a9cdf6c44dc235fdb61b30e2217adc93f6bf6bd0fa586de9c3c1d2a29fe744399829f0f09aa997116f13cfff40e58b5684f881603ca0af85d882f766d3c9d4ba9da33889a487935e58e36db8ff0d9260819bb9e166f7077236bf318a48123143ecc8e6a413eeb19765a08c32de9940af0f0296966ce0877900c604204a3cf7de75bd0e882380d59c34538188121d5b7a356c47575210b7dfa506c6040c41135bbe9fad421c5da8adc8dceefd5978259488f7474ab522c0127c62eb48ecff44d822c0487b0153ed66e109e86ed99cdb7af0550ba76e50ad0621a64f787d102e444c12ddfb32c48ab5ff5a819b3cba6cbc4cac49b54b3c661787ad35fc8373429fd3fc304721bbdf21f16315477052e9d99ef36dcab09e3efe6e48c9ec9e8fff11d00af137a42354dc82d766dff6a97a535c44a90bfef35bf06c4177f670bce616f491bada229e5ba30ff2459507252539027a9d4976566bb4fa847a19f6bfb8f1036ec47555eae880c797649d81181431a33ba0a22c38ca769a8457963113c28b61840454b3e28a44fc0b97d05176b742ff58691789a27421610c93216c1b81b3ed0ad5436cbd6da50896037fa3dd780eb36ae7cc4e56abc141ec9cda602eb9e8b5f3cebf0241c14a6b290181a87933cd9a2117564b8e363c2584f19111bff40427ede63bc595c996d12e75a70a73bb2ddc77bfa4bd40233a0b5528142d04a6d88fd4c7692a9191090d00cf73d3801fefa13344634e5c39038d5247480a2cf654d00d369bfd8c596302a028807a6fbe6ed9b3ab2c846662adfb221304e72da369c0d3907d3eb749c9652bd3ba7fa23a5d707605e1293e8b420544853b6163cfb3eb7c39c8013fd8b078db5ad53b82ff018c324933abb6191f67d6a2a01aff4b7584c83a2b6f6f8bac180741665fb653d9f7824b168f45eaff044013bd3a024d659259e003772a321a2a172b24ee54674107714fda4d512ee3093b3c020ef77ca4e3f2d8218f2f7be8ff910e4b70341f555be05037db56248415433b7d485ce813a96dddee897c25e73ea08df7abb21c137e90c4a5a4c090751148fa273ec4324953e5c156c4e465fc84d396bcb1295ad067e55cdf2240971e30bb659a757d3c90d5c485a9a0cb0dfd96c8ba80e83bfd0e7ce4b205c876ca789a1aa6cd87aa8508c041e11b31fd0b48da537119391fca00325ae304ed5603dbcac37692e141ddee494b4fbf611f79f8a6b9f918c90d6c077f1502c0e5f4405e70b6dd280fa8bf93a58f9efe76994bf095f5417bb6dba781c05b8b906f9d4fd029b221e2b93c7eb9e139386464dd3266eb612a34b1dce22e748fbe025022f1a3a303e94b1504a091bfa2be200080f07053a3a1b1f0f4dd6f04ac9afa887364d1f35a0cce62e6eb94e333cb9e532d761367b0e0dbf563473470d39ca2912eeca349d73a265bf2db471ee02966a1bd69995cdae3e0786595daa2d02bd787b1d9197bf95a4be9190d22a63397f3b9e7ce826a52c24fbb2dcaaf03ad2ef02bf5afd8bd601358481bb08bda22976bfebb1dbd89cfe6ecaf2785458c976ff450ffecc1609eafa6fff2085165c3aa4eeec6b6ceb0a41bd82dc2914cf4cda2fe946b1299bc7caedd4d59225f24bd30c4269747ba9aa211dd7206b729b9e735174acf91f775d4878b9271014c210ba559134c8879287263c822f13345846edafd1dd87d1ce488d52008c6eb9acfbbf14406e452652e0be615c3f601d5b72f487a658ba88f1572c19732c3c764a1e53c4cb9f27950bd64b4cca961dd9273e36e2f60f3911fffebb1fff5df1cddf19b8ed4c083e518f8d2f12663570204f567b871ba69504a837acd0b43c530f33e0222551e347084e4f1ccd3d39daa49e9ec992ffef70894c415dccb85d86e814d6246d37dcf6ece310cc8da2886a886f06332b94c5eb17c39078b63be41b4bb21db339580bed36c67987057665c17c9a1d911722e8c58180d46c91d073bf00ab19de5f607b59b206651b9aa2f3be88d4033a75e13a0be9407f30c0fa34ae1da34c7c2bb09088caa5a3eda99c542abb139b165367d1f2d49461107bdcfad9bb81f95258d8991ebae66f68bbd20f3531da90ce9eee24697b1da8a7caeeb4f80d7cef0eb6bfefd7df9aec066ad38af9268334ccf53763128d02bb866aeda43818473682448e918f5ce6d594c42f59d00193bef969fc66b9c16a5fd21432b66518b73e7275a76543bf961eed919f087b80ccc9e2e5a2c1d847e3d3b0a2c6df23ea166758e76505d277801f3c506249456d45ea365e40f968d5faba7f3cd8ad259c4045f89780cbc3447078d874c2ad4210e3e3477a2c879bcafd10a157edff198a7aa64d3b8f923acd017b99127de215eab992f703056d4d9b5fa11e31b27cdbaabd69de440282416e398ec9eea5a24d426cee95a1d9f04c1bd18a35445ed96ffbd7454662faf1d4e422341c37f5eca3f7d27865c0d79b4a6e757bfa4a54e658683598f7b365a0be3c6ce3d38f569abe0e9f50375b5f98ac0ef601518376402700130f891ec34dc614ffb9563227f7dfb2fcc5bbf63a8d6ea7cfea0b40ec6956f2826bef7f3e2f49a7a67f21daa1a81d1a93f7aa38f78457fd577b50af6e325bbc9ba3047b4f44899c9ed88d9255e015d315d723e8631b159174c9adfbd2904fbebe38758710367bfb2460fb5e2ee04a148d4d75d8cb7acc45d3efde60d681582efcd3db18cbef99021d96761d040396c43729638ad39d14f9ff05cba2156b895199057b5f196cc176cd314817ef5c052e5e776f713b54043294470a3c066b84a6d96c9ee7b46cf0f05672858c5b38397dcb5b4a577a15153aca7a7870f66adf3f02e15687a4536d332d851e400546095d4ff3742904f4019a8d418c87e3bd446a05542e6905612f69e464248895e30e4aef0679e86d1bc7e974235aa0cc8cb72ce21ec328f70442fc8aae5cf9cb10d9d8591055c7ba3c1293c0c55a74980c0817a2862b89b43cc9f92375df8670b7fb7acf7186036598626a49c780311e4b5b8ed0df89a4983fa0889a36a36f5997f4be8840934d3003cfa83ac5d8e08e0f01bed6ad9575ac20b39eab95371f82288388dcc5d342195f90ab7e1c77344e55f24cc7e373e8ea16b5eedfb08293b3068ece5fcf1c891c040fc0fbf9ef4ec8319b615eac86afdfe5f81e6838f1e1fb0cf0764d3ebf703bc7913f73ff668d7f27501b753836e3dde910a7123617f60b0cc3857d9d431033c2fa7c951da85f5f728f2985b43ec7da7c5fb7f9dfa101193c50a36475daf61b98b113c60f957e71fb9615b18bdccb4d9bdcec7d7e9b5a27531d837b0278f84d490f906193403514e5ad26fd04aea0b65cbc9939dd166d916eb2cd6d3c4d82ad1dad0b4c9512dcfd7ddf207b0e51fd057c462fa49c964079baa5bb2b1cac259b1f94d20515c5bda5de314c89ffdf830ae16a22a3c4e02321a467c6ffb1624489b2d28a10e16968256869dc18ea525d32906f79bed2e81167d56d4b406e998e258f2a0f18c87dc57cb242a00ea888ae5aef791502e37d4bbdb4c9decd85b861528ede8386dcdaa0ee74bcc3542a51db6026db91e17f866aba095ef62ed2f62c5c477923104af83962e0f66f30b3179a3be463c1085e91b66d314d3448ff05873897b91fa4c536927ccd42e56a0caff8f4a45eab965eac04a67c63412eb4d8155aea12f0ec42fe4595a23a64c2bcb56b6c2fef6118ea3204ad54e05c771c3d8ae0bdb0b385b4e5d61eff52c9a884bb19d71360803b1b79e81f784490888a4e10d03e17aab3b7b8ca484dbaaeaa6b1bb73fa34a068fc98da48caed9b505d68ab3dbba4095931aa32d80deb3cc35e5b310d2608bb5c8e12f9e9d0120437cf97406236a3cfd6b88806d8a09d94238e65d2bf959a81b290dae8bfd39bcb32d36839801a68ac5f042b9fc9f9ee342a807f94605ee97becb506b5181fab539eae7787d6cec5feb8c3f5f349039a6d45a16b39f40f9df3546a661dc00682ee66634d1a7241caff97df6ce6de57370f61ec7f318984a5d303e534e7cdf0d629dad18a80ed376a381a9e222c149a4825f28b234a9b68aecaf1df39e8dad83cf43a8a62eb150425b4badbd7d062d4d5de0e98af89d9b3ee25a59db0a2dbfe271fe235c9606ce68c050359dca3ff9cdbb6b126eb5dc07f82209202dcacc30339b3fb58c6d0d9ce99bec70d27dd9eb4696b26276ade18cc33c4b3753bc5d22527d72b87b30f057c2dd04c62b0fb2d7ed4476583645744fad56f702329020eb9bbec04de7f2</script> <div class="hbe hbe-content"> <div class="hbe hbe-input hbe-input-xray"> <input class="hbe hbe-input-field hbe-input-field-xray" type="password" id="hbePass"> <label class="hbe hbe-input-label hbe-input-label-xray" for="hbePass"> <span class="hbe hbe-input-label-content hbe-input-label-content-xray">输入密码</span> </label> <svg class="hbe hbe-graphic hbe-graphic-xray" width="300%" height="100%" viewBox="0 0 1200 60" preserveAspectRatio="none"> <path d="M0,56.5c0,0,298.666,0,399.333,0C448.336,56.5,513.994,46,597,46c77.327,0,135,10.5,200.999,10.5c95.996,0,402.001,0,402.001,0"></path> <path d="M0,2.5c0,0,298.666,0,399.333,0C448.336,2.5,513.994,13,597,13c77.327,0,135-10.5,200.999-10.5c95.996,0,402.001,0,402.001,0"></path> </svg> </div> </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
文章被加密,请输入密码查看(名字首字母缩写)
</summary>
<category term="public" scheme="https://969975553.gitee.io/tags/public/"/>
</entry>
<entry>
<title>skia编译笔记</title>
<link href="https://969975553.gitee.io/2021/03/23/skia%E7%BC%96%E8%AF%91%E7%AC%94%E8%AE%B0/"/>
<id>https://969975553.gitee.io/2021/03/23/skia%E7%BC%96%E8%AF%91%E7%AC%94%E8%AE%B0/</id>
<published>2021-03-23T07:38:32.000Z</published>
<updated>2021-03-23T07:40:30.729Z</updated>
<content type="html"><![CDATA[<h2 id="步骤"><a href="#步骤" class="headerlink" title="步骤"></a>步骤</h2><figure class="highlight bat"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> %~dp0</span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> <span class="built_in">path</span>=D:\depot_tools\depot_tools\python276_bin;<span class="variable">%path%</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> https_proxy = http://<span class="number">127</span>.<span class="number">0</span>.<span class="number">0</span>.<span class="number">1</span>:<span class="number">7078</span></span><br><span class="line"></span><br><span class="line">python tools/git-sync-deps</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment">REM tools/install_dependencies.sh</span></span><br><span class="line"></span><br><span class="line"><span class="comment">REM gn gen out/windows_x86_debug</span></span><br><span class="line"></span><br><span class="line"><span class="comment">REM ninja -C out/windows_x86_debug</span></span><br><span class="line"></span><br><span class="line"><span class="comment">REM gn gen out/windows_x86_release</span></span><br><span class="line"></span><br><span class="line"><span class="comment">REM ninja -C out/windows_x86_release</span></span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">
<h2 id="步骤"><a href="#步骤" class="headerlink" title="步骤"></a>步骤</h2><figure class="highlight bat"><table><tr><td class="gutter"><pre><span cl
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="编译" scheme="https://969975553.gitee.io/tags/%E7%BC%96%E8%AF%91/"/>
<category term="skia" scheme="https://969975553.gitee.io/tags/skia/"/>
</entry>
<entry>
<title>pdfium编译笔记</title>
<link href="https://969975553.gitee.io/2021/03/23/pdfium%E7%BC%96%E8%AF%91%E7%AC%94%E8%AE%B0/"/>
<id>https://969975553.gitee.io/2021/03/23/pdfium%E7%BC%96%E8%AF%91%E7%AC%94%E8%AE%B0/</id>
<published>2021-03-23T07:23:43.000Z</published>
<updated>2021-03-23T07:42:10.780Z</updated>
<content type="html"><![CDATA[<h3 id="cmd"><a href="#cmd" class="headerlink" title="cmd"></a>cmd</h3><figure class="highlight bat"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">set</span> DEPOT_TOOLS_UPDATE = <span class="number">0</span></span><br><span class="line"></span><br><span class="line">//</span><br><span class="line"><span class="built_in">set</span> http_proxy=<span class="number">127</span>.<span class="number">0</span>.<span class="number">0</span>.<span class="number">1</span>:<span class="number">1080</span></span><br><span class="line"><span class="built_in">set</span> https_proxy=<span class="number">127</span>.<span class="number">0</span>.<span class="number">0</span>.<span class="number">1</span>:<span class="number">1080</span></span><br><span class="line"><span class="built_in">set</span> DEPOT_TOOLS_WIN_TOOLCHAIN=<span class="number">0</span></span><br><span class="line"><span class="built_in">set</span> GYP_MSVS_VERSION=<span class="number">2019</span></span><br><span class="line"></span><br><span class="line">gclient config --unmanaged https://pdfium.googlesource.com/pdfium.git</span><br><span class="line">gclient sync</span><br><span class="line">gn args</span><br></pre></td></tr></table></figure><p>参数设置</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="comment"># 是否启用 goma 支持</span></span><br><span class="line"> </span><br><span class="line">use_goma = false</span><br><span class="line"><span class="comment"># 是否编译为 Chrome 插件</span></span><br><span class="line"> </span><br><span class="line">clang_use_chrome_plugins = false</span><br><span class="line"> </span><br><span class="line"><span class="comment"># 是否进行编译测试</span></span><br><span class="line">pdf_is_standalone = true</span><br><span class="line"> </span><br><span class="line"> </span><br><span class="line"><span class="comment"># 是否启用 skia 支持</span></span><br><span class="line">pdf_use_skia = false</span><br><span class="line">pdf_use_skia_paths = false</span><br><span class="line"> </span><br><span class="line"><span class="comment"># true 编译为 debug 版本,false 编译为 release 版本</span></span><br><span class="line">is_debug = false</span><br><span class="line"> </span><br><span class="line"><span class="comment"># true 编译为动态库,false 编译为静态库</span></span><br><span class="line">is_component_build = false</span><br><span class="line"></span><br><span class="line"><span class="comment"># 编译为一个独立的静态库(is_component_build 必须为 false)</span></span><br><span class="line"><span class="comment"># pdf_is_complete_lib 为 false 时, 编译为多个静态库,true 编译为一个独立的静态库</span></span><br><span class="line">pdf_is_complete_lib = false</span><br><span class="line"> </span><br><span class="line"><span class="comment"># xfa 支持</span></span><br><span class="line">pdf_enable_xfa = false</span><br><span class="line"> </span><br><span class="line"><span class="comment"># v8 支持;启用 v8 后,编译时间会增加</span></span><br><span class="line">pdf_enable_v8 = true</span><br><span class="line"> </span><br><span class="line"><span class="comment"># cpu 架构;x86、x64 可选</span></span><br><span class="line">target_cpu = <span class="string">"x86"</span></span><br><span class="line"> </span><br><span class="line"><span class="comment"># true 将用 clang 进行编译,false 将用 VS2017 编译</span></span><br><span class="line">is_clang = false</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">
<h3 id="cmd"><a href="#cmd" class="headerlink" title="cmd"></a>cmd</h3><figure class="highlight bat"><table><tr><td class="gutter"><pre><spa
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="编译" scheme="https://969975553.gitee.io/tags/%E7%BC%96%E8%AF%91/"/>
<category term="第三方库" scheme="https://969975553.gitee.io/tags/%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%93/"/>
</entry>
<entry>
<title>chromium相关</title>
<link href="https://969975553.gitee.io/2021/03/11/chromium%E7%9B%B8%E5%85%B3/"/>
<id>https://969975553.gitee.io/2021/03/11/chromium%E7%9B%B8%E5%85%B3/</id>
<published>2021-03-11T08:02:14.000Z</published>
<updated>2021-03-23T07:33:09.931Z</updated>
<content type="html"><![CDATA[<ol><li>重排函数在pe中的顺序 微软的Vulcan 谷歌的syzygy</li></ol><h4 id="谷歌的syzygy"><a href="#谷歌的syzygy" class="headerlink" title="谷歌的syzygy"></a>谷歌的syzygy</h4><ul><li>使用编译器提供的/profile接口,在生成的pe文件中插入指令hook住函数。</li><li>通过ETW(Event Tracing for Windows)机制获得目标程序的函数性能数据。</li><li>根据函数性能数据生成了重排布策略,调用编译器接口去重排布pe文件,调用的DIA(Debug Interface Access)接口去修改pdb文件</li></ul>]]></content>
<summary type="html">
<ol>
<li>重排函数在pe中的顺序 微软的Vulcan 谷歌的syzygy</li>
</ol>
<h4 id="谷歌的syzygy"><a href="#谷歌的syzygy" class="headerlink" title="谷歌的syzygy"></a>谷歌的syzy
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
</entry>
<entry>
<title>windows-classic-demos 梳理</title>
<link href="https://969975553.gitee.io/2021/03/03/windows-classic-demos-%E6%A2%B3%E7%90%86/"/>
<id>https://969975553.gitee.io/2021/03/03/windows-classic-demos-%E6%A2%B3%E7%90%86/</id>
<published>2021-03-03T05:56:06.000Z</published>
<updated>2021-03-03T06:55:19.349Z</updated>
<content type="html"><![CDATA[<h3 id="工程"><a href="#工程" class="headerlink" title="工程"></a>工程</h3><p>1.AmbientLightAware 光亮感应器 平板设备等根据环境调整应用程序</p><p>2.AmsiProvider AmsiStream 杀软接口</p><p>3.AppxPacking 打包相关</p><p>4.Background Intelligent Transfer Service 后台智能传输服务后台下载 xp支持 没看到什么应用使用Bits.h 但是确实能用,可以在应用程序退出后空闲时间继续下载(依赖服务Background Intelligent Transfer Service)Windows.Networking.BackgroundTransfer UWP开发使用</p><p>5. </p>]]></content>
<summary type="html">
<h3 id="工程"><a href="#工程" class="headerlink" title="工程"></a>工程</h3><p>1.AmbientLightAware 光亮感应器 平板设备等根据环境调整应用程序</p>
<p>2.AmsiProvider Amsi
</summary>
</entry>
<entry>
<title>C++数据可视化</title>
<link href="https://969975553.gitee.io/2021/03/01/C-%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/"/>
<id>https://969975553.gitee.io/2021/03/01/C-%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/</id>
<published>2021-03-01T03:35:31.000Z</published>
<updated>2021-03-01T05:35:48.399Z</updated>
<content type="html"><![CDATA[<p><a href="https://ducciogasparri.it/2019/12/06/best-plot-and-charting-c-packages-for-data-visualization">https://ducciogasparri.it/2019/12/06/best-plot-and-charting-c-packages-for-data-visualization</a></p><p>Prometheus <a href="https://prometheus.io/">https://prometheus.io/</a> 服务器监控<br>Graphite<br> 图表 Grafana <a href="https://github.com/grafana/grafana">https://github.com/grafana/grafana</a></p>]]></content>
<summary type="html">
<p><a href="https://ducciogasparri.it/2019/12/06/best-plot-and-charting-c-packages-for-data-visualization">https://ducciogasparri.it/2019/12
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="C++" scheme="https://969975553.gitee.io/tags/C/"/>
</entry>
<entry>
<title>MD打包需要dll详解</title>
<link href="https://969975553.gitee.io/2021/01/05/MD%E6%89%93%E5%8C%85%E9%9C%80%E8%A6%81dll%E8%AF%A6%E8%A7%A3/"/>
<id>https://969975553.gitee.io/2021/01/05/MD%E6%89%93%E5%8C%85%E9%9C%80%E8%A6%81dll%E8%AF%A6%E8%A7%A3/</id>
<published>2021-01-05T03:24:16.000Z</published>
<updated>2021-02-18T11:22:30.552Z</updated>
<content type="html"><![CDATA[<h2 id="MD编译的程序需要带哪些dll呢?"><a href="#MD编译的程序需要带哪些dll呢?" class="headerlink" title="MD编译的程序需要带哪些dll呢?"></a>MD编译的程序需要带哪些dll呢?</h2><h3 id="个人理解总结"><a href="#个人理解总结" class="headerlink" title="个人理解总结"></a>个人理解总结</h3><p>我们以vs2015编译的程序为例</p><ol><li><p>msvcp140.dll 可进一步拆分为ucrtbase.dll + vcruntime.dll</p></li><li><p>msvcr140.dll 一般是指运行时库</p></li><li><p>ucrtbase.dll c和cpp函数集合</p></li><li><p>vcruntime.dll vc++的运行时</p></li><li><p>windows api set 系列的dll 如 api—ms-<em>,ext—</em>.dll 一般不需要直接打包到进去,每个系统的版本号可能不一致,且该系列dll不是直接干活的而是转发调用系统核心</p></li><li><p>当缺少以上任意dll时,用户不应该手动去第三方网站下载,程序员应该提供所需的dll打包到目录,用户可以去微软下载安装对应版本的vcredist2015_x86.exe vcredist2015_x64.exe</p></li></ol><h3 id="vcredist"><a href="#vcredist" class="headerlink" title="vcredist"></a>vcredist</h3><p>当安装成功vcredist 检测c盘 windows/system32目录下会多出以下文件</p><ul><li>msvcp140.dll</li><li>concrt140.dll</li><li>mfc140.dll 系列</li><li>msvcp140.dll</li><li>vcamp140.dll</li><li>vccorlib140.dll</li><li>vcomp140.dll</li><li>vcruntime140.dll</li></ul>]]></content>
<summary type="html">
<h2 id="MD编译的程序需要带哪些dll呢?"><a href="#MD编译的程序需要带哪些dll呢?" class="headerlink" title="MD编译的程序需要带哪些dll呢?"></a>MD编译的程序需要带哪些dll呢?</h2><h3 id="个人理解总
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="c++" scheme="https://969975553.gitee.io/tags/c/"/>
<category term="音乐" scheme="https://969975553.gitee.io/tags/%E9%9F%B3%E4%B9%90/"/>
</entry>
<entry>
<title>ffmpeg认识与编译(1)</title>
<link href="https://969975553.gitee.io/2020/12/23/ffmpeg%E8%AE%A4%E8%AF%86%E4%B8%8E%E7%BC%96%E8%AF%91-1/"/>
<id>https://969975553.gitee.io/2020/12/23/ffmpeg%E8%AE%A4%E8%AF%86%E4%B8%8E%E7%BC%96%E8%AF%91-1/</id>
<published>2020-12-23T07:01:17.000Z</published>
<updated>2021-03-30T02:10:56.703Z</updated>
<content type="html"><![CDATA[<h2 id="编译"><a href="#编译" class="headerlink" title="编译"></a>编译</h2><h3 id="源码包-F-GitHub-ffmpeg-4-2-3编译"><a href="#源码包-F-GitHub-ffmpeg-4-2-3编译" class="headerlink" title="源码包 F:\GitHub\ffmpeg-4.2.3编译"></a>源码包 F:\GitHub\ffmpeg-4.2.3编译</h3><p>看了几个编译脚本都依赖了msys2<br><a href="https://github.com/microsoft/FFmpegInterop">https://github.com/microsoft/FFmpegInterop</a> //Interop 交互</p><h3 id="msys2"><a href="#msys2" class="headerlink" title="msys2"></a>msys2</h3><p>模拟linux环境的工具可替代msys,MinGW,Cygwin 下载地址<a href="https://www.msys2.org/">https://www.msys2.org/</a></p><p>ps: 这玩意居然91.3MB WHAT IS THIS?</p><p><a href="https://trac.ffmpeg.org/wiki/CompilationGuide">https://trac.ffmpeg.org/wiki/CompilationGuide</a><br><a href="https://www.ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows">https://www.ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows</a></p><ol><li>在C:\msys64\msys2_shell.cmd 运行</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#过程较慢 更新很多组件</span></span><br><span class="line">pacman -Syu </span><br><span class="line">pacman -S make pkgconf diffutils yasm</span><br></pre></td></tr></table></figure><h3 id="编译问题"><a href="#编译问题" class="headerlink" title="编译问题"></a>编译问题</h3><ol><li>cl.exe 不识别 应该是没有 set MSYS2_PATH_TYPE=inherit</li><li>make: 未找到命令</li></ol>]]></content>
<summary type="html">
<h2 id="编译"><a href="#编译" class="headerlink" title="编译"></a>编译</h2><h3 id="源码包-F-GitHub-ffmpeg-4-2-3编译"><a href="#源码包-F-GitHub-ffmpeg-4-2-3编
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="编译" scheme="https://969975553.gitee.io/tags/%E7%BC%96%E8%AF%91/"/>
<category term="第三方库" scheme="https://969975553.gitee.io/tags/%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%93/"/>
</entry>
<entry>
<title>压缩算法总结</title>
<link href="https://969975553.gitee.io/2020/12/14/%E5%8E%8B%E7%BC%A9%E7%AE%97%E6%B3%95%E6%80%BB%E7%BB%93/"/>
<id>https://969975553.gitee.io/2020/12/14/%E5%8E%8B%E7%BC%A9%E7%AE%97%E6%B3%95%E6%80%BB%E7%BB%93/</id>
<published>2020-12-14T07:56:17.000Z</published>
<updated>2020-12-14T08:25:43.443Z</updated>
<content type="html"><![CDATA[<h2 id="压缩算法总结"><a href="#压缩算法总结" class="headerlink" title="压缩算法总结"></a>压缩算法总结</h2><p>经常记不住性能特点,数据来源<a href="https://linuxreviews.org/Comparison_of_Compression_Algorithms">https://linuxreviews.org/Comparison_of_Compression_Algorithms</a> </p><table><thead><tr><th>algorithm</th><th>time</th><th>size</th><th>binary</th><th>parameters</th><th>info</th></tr></thead><tbody><tr><td>algorithm</td><td>time</td><td>size</td><td>binary</td><td>parameters</td><td>info</td></tr><tr><td>none</td><td>0m0.934s</td><td>939M</td><td>just tar</td><td>cf</td><td>tar itself is an archiving tool, you do not need to compress the archives</td></tr><tr><td>gzip</td><td>0m23.502s</td><td>177M</td><td>gzip</td><td>cfz</td><td></td></tr><tr><td>gzip</td><td>0m3.132s</td><td>177M</td><td>pigz</td><td>c -Ipigz -f</td><td>pigz 2.4</td></tr><tr><td>bzip2</td><td>1m0.798s</td><td>134M</td><td>bzip2</td><td>cfj</td><td>Standard bzip2 will only use one core (at 100%)</td></tr><tr><td>bzip2</td><td>0m9.091s</td><td>135M</td><td>pbzip2</td><td>c -Ipbzip2 -f</td><td>Parallel bzip2. RAM usage topped out at about 900 MiB RAM.</td></tr><tr><td>lz4</td><td>0m3.914s</td><td>287M</td><td>lz4</td><td>c -I”lz4” -f</td><td>Really fast but the resulting archive is barely compressed. Worst compression king.</td></tr><tr><td>lz4</td><td>0m56.506s</td><td>207M</td><td>lz4</td><td>c -I”lz4 -12” -f</td><td>Supports levels -[1-12].Uses 1 core, does not appear to be any multi-threaded variant(?)</td></tr><tr><td>lzip</td><td>4m42.017s</td><td>116M</td><td>lzip</td><td>c –lzip -f</td><td>v1.21. Standard lzip will only use one core (at 100%). Very slow.</td></tr><tr><td>lzip</td><td>0m42.542s</td><td>118M</td><td>plzip</td><td>c -Iplzip -f</td><td>plzip 1.8 (Parallel lzip), default level -6</td></tr><tr><td>lzip</td><td>1m39.697s</td><td>110M</td><td>plzip</td><td>c -I”plzip -9” -f</td><td>Parallel lzip at best compression -9. plzip process used 5.1 GiB RAM at its maximum.</td></tr><tr><td>xz</td><td>5m2.952s</td><td>114M</td><td>xz</td><td>cfJ</td><td>Standard xz will only use one core (at 100%). Unbearably slow.</td></tr><tr><td>xz</td><td>0m53.569s</td><td>115M</td><td>pxz</td><td>c -Ipxz -f</td><td>Parallel PXZ 4.999.9beta. Process used 1.4 GiB RAM at its maximum.</td></tr><tr><td>xz</td><td>1m33.441s</td><td>110M</td><td>pxz</td><td>c -I”pxz -9” -f</td><td>Parallel PXZ 4.999.9beta using its best possible compression. pxz process topped out at 3.5 GiB resident.</td></tr><tr><td>zstd</td><td>0m3.034s</td><td>167M</td><td>zstd</td><td>c –zstd -f</td><td>zstd uses 1 core if it is no told otherwise with -T# where # is a thread number and 0 means all cores (not all threads)</td></tr><tr><td>zstd</td><td>1m18.238s</td><td>117M</td><td>zstd</td><td>c -I”zstd -19 -T0” -f</td><td>-19 gives the best possible compression, -T0 utilizes all cores.</td></tr></tbody></table><h3 id="PK"><a href="#PK" class="headerlink" title="PK"></a>PK</h3><p>压缩体积<br>压缩<br>解压缩</p>]]></content>
<summary type="html">
<h2 id="压缩算法总结"><a href="#压缩算法总结" class="headerlink" title="压缩算法总结"></a>压缩算法总结</h2><p>经常记不住性能特点,数据来源<a href="https://linuxreviews.org/Compar
</summary>
</entry>
<entry>
<title>Qt源码编译(windows环境)</title>
<link href="https://969975553.gitee.io/2020/12/14/Qt%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91/"/>
<id>https://969975553.gitee.io/2020/12/14/Qt%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91/</id>
<published>2020-12-14T03:21:48.000Z</published>
<updated>2021-03-23T07:40:45.375Z</updated>
<content type="html"><![CDATA[<h2 id="步骤"><a href="#步骤" class="headerlink" title="步骤"></a>步骤</h2><ol><li>下载Qt源码,直接下载代码压缩包,通过git下载代码太慢</li><li>在vs cmd控制台中 进入源码根目录 configure -prefix E:\QtSource\build -release -opensource -static -force-debug-info -opengl dynamic -platform win32-msvc -c++std c++11 -skip qtmultimedia -skip qtsensors -skip qtwebengine -skip qtgamepad -nomake examples -nomake tests -mp -skip qtlocation -skip qtserialbus -confirm-license<br><a href="https://doc.qt.io/qt-5/configure-options.html">https://doc.qt.io/qt-5/configure-options.html</a> configure 选项<br>使用 configure.bat -h 查看</li></ol><p>configure -prefix D:\QtSource\build -debug-and-release -opensource -static -force-debug-info -opengl dynamic -platform win32-msvc -c++std c++11 -skip qtmultimedia -skip qtsensors -skip qtwebengine -skip qtgamepad -nomake tests -mp -skip qtlocation -skip qtserialbus -confirm-license</p><figure class="highlight bat"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br></pre></td><td class="code"><pre><span class="line">Configure meta:</span><br><span class="line"></span><br><span class="line"> -<span class="built_in">help</span>, -h ............ Display this <span class="built_in">help</span> screen</span><br><span class="line"> -verbose, -v ......... <span class="built_in">Print</span> verbose messages during configuration</span><br><span class="line"> -continue ............ Continue configure despite errors</span><br><span class="line"> -redo ................ Re-configure with previously used options.</span><br><span class="line"> Additional options may be passed, but will <span class="keyword">not</span> be</span><br><span class="line"> saved <span class="keyword">for</span> later use by -redo.</span><br><span class="line"> -recheck [test,...] .. Discard cached negative configure test results.</span><br><span class="line"> Use this after installing missing dependencies.</span><br><span class="line"> Alternatively, <span class="keyword">if</span> tests are specified, only their</span><br><span class="line"> results are discarded.</span><br><span class="line"> -recheck-all ......... Discard all cached configure test results.</span><br><span class="line"></span><br><span class="line"> -feature-<feature> ... Enable <feature></span><br><span class="line"> -no-feature-<feature> Disable <feature> [none]</span><br><span class="line"> -list-features ....... List available features. Note that some features</span><br><span class="line"> have dedicated command line options as well.</span><br><span class="line"></span><br><span class="line"> -list-libraries ...... List possible external dependencies.</span><br><span class="line"></span><br><span class="line">Build options:</span><br><span class="line"></span><br><span class="line"> -opensource .......... Build the Open-Source Edition of Qt</span><br><span class="line"> -commercial .......... Build the Commercial Edition of Qt</span><br><span class="line"> -confirm-license ..... Automatically acknowledge the license</span><br><span class="line"></span><br><span class="line"> -release ............. Build Qt with debugging turned off [yes]</span><br><span class="line"> -debug ............... Build Qt with debugging turned on [no]</span><br><span class="line"> -debug-and-release ... Build two versions of Qt, with and without</span><br><span class="line"> debugging turned on [yes] (Apple and Windows only)</span><br><span class="line"> -optimize-debug ...... Enable debug-friendly optimizations <span class="keyword">in</span> debug builds</span><br><span class="line"> [auto] (<span class="keyword">Not</span> supported with MSVC or Clang toolchains)</span><br><span class="line"> -optimize-size ....... Optimize release builds <span class="keyword">for</span> size instead of speed [no]</span><br><span class="line"> -optimized-tools ..... Build optimized host tools even <span class="keyword">in</span> debug build [no]</span><br><span class="line"> -force-debug-info .... Create symbol files <span class="keyword">for</span> release builds [no]</span><br><span class="line"> -separate-debug-info . Split off debug information to separate files [no]</span><br><span class="line"> -gdb-index ........... Index the debug info to speed up GDB</span><br><span class="line"> [no; auto <span class="keyword">if</span> -developer-build with debug info]</span><br><span class="line"> -strip ............... Strip release binaries of unneeded symbols [yes]</span><br><span class="line"> -gc-binaries ......... Place each function or data item into its own section</span><br><span class="line"> and enable linker garbage collection of unused</span><br><span class="line"> sections. [auto <span class="keyword">for</span> static builds, otherwise no]</span><br><span class="line"> -force-asserts ....... Enable Q_ASSERT even <span class="keyword">in</span> release builds [no]</span><br><span class="line"> -developer-build ..... Compile and link Qt <span class="keyword">for</span> developing Qt itself</span><br><span class="line"> (exports <span class="keyword">for</span> auto-tests, extra checks, etc.) [no]</span><br><span class="line"></span><br><span class="line"> -shared .............. Build shared Qt libraries [yes] (no <span class="keyword">for</span> UIKit)</span><br><span class="line"> -static .............. Build static Qt libraries [no] (yes <span class="keyword">for</span> UIKit)</span><br><span class="line"> -framework ........... Build Qt framework bundles [yes] (Apple only)</span><br><span class="line"></span><br><span class="line"> -platform <target> ... Select host mkspec [detected]</span><br><span class="line"> -xplatform <target> .. Select target mkspec when cross-compiling [PLATFORM]</span><br><span class="line"> -device <name> ....... Cross-compile <span class="keyword">for</span> device <name></span><br><span class="line"> -device-option <key=value> ... Add option <span class="keyword">for</span> the device mkspec</span><br><span class="line"></span><br><span class="line"> -appstore-compliant .. Disable code that is <span class="keyword">not</span> allowed <span class="keyword">in</span> platform app stores.</span><br><span class="line"> This is on by default <span class="keyword">for</span> platforms which require distribution</span><br><span class="line"> through an app store by default, <span class="keyword">in</span> particular Android,</span><br><span class="line"> iOS, tvOS, watchOS, and Universal Windows Platform. [auto]</span><br><span class="line"></span><br><span class="line"> -qtnamespace <name> .. Wrap all Qt library code <span class="keyword">in</span> 'namespace <name> {...}'.</span><br><span class="line"> -qtlibinfix <infix> .. <span class="built_in">Rename</span> all libQt5*.so to libQt5*<infix>.so.</span><br><span class="line"> -qtlibinfix-plugins .. <span class="built_in">Rename</span> Qt plugins according to -qtlibinfix [no]</span><br><span class="line"></span><br><span class="line"> -testcocoon .......... Instrument with the TestCocoon code coverage tool [no]</span><br><span class="line"> -gcov ................ Instrument with the GCov code coverage tool [no]</span><br><span class="line"></span><br><span class="line"> -trace [backend] ..... Enable instrumentation with tracepoints.</span><br><span class="line"> Currently supported backends are 'etw' (Windows) and</span><br><span class="line"> 'lttng' (Linux), or 'yes' <span class="keyword">for</span> auto-detection. [no]</span><br><span class="line"></span><br><span class="line"> -sanitize {address|thread|memory|undefined}</span><br><span class="line"> Instrument with the specified compiler sanitizer.</span><br><span class="line"> Note that some sanitizers cannot be combined;</span><br><span class="line"> <span class="keyword">for</span> example, -sanitize address cannot be combined with</span><br><span class="line"> -sanitize thread.</span><br><span class="line"></span><br><span class="line"> -coverage {trace-pc-guard}</span><br><span class="line"> Add code coverage instrumentation (Clang only)</span><br><span class="line"></span><br><span class="line"> -c++std <edition> .... Select C++ standard <edition> [c++<span class="number">2</span>a/c++<span class="number">17</span>/c++<span class="number">14</span>/c++<span class="number">11</span>]</span><br><span class="line"> (<span class="keyword">Not</span> supported with MSVC <span class="number">2015</span>)</span><br><span class="line"></span><br><span class="line"> -sse2 ................ Use SSE2 instructions [auto]</span><br><span class="line"> -sse3/-ssse3/-sse4.<span class="number">1</span>/-sse4.<span class="number">2</span>/-avx/-avx2/-avx512</span><br><span class="line"> Enable use of particular x86 instructions [auto]</span><br><span class="line"> Enabled ones are still subject to runtime detection.</span><br><span class="line"> -mips_dsp/-mips_dspr2 Use MIPS DSP/rev2 instructions [auto]</span><br><span class="line"></span><br><span class="line"> -qreal <<span class="built_in">type</span>> ........ typedef qreal to the specified <span class="built_in">type</span>. [double]</span><br><span class="line"><span class="function"> Note: <span class="title">this</span> <span class="title">affects</span> <span class="title">binary</span> <span class="title">compatibility</span>.</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">R</span> <<span class="title">string</span>> .......... <span class="title">Add</span> <span class="title">an</span> <span class="title">explicit</span> <span class="title">runtime</span> <span class="title">library</span> <span class="title">path</span> <span class="title">to</span> <span class="title">the</span> <span class="title">Qt</span></span></span><br><span class="line"><span class="function"> <span class="title">libraries</span>. <span class="title">Supports</span> <span class="title">paths</span> <span class="title">relative</span> <span class="title">to</span> <span class="title">LIBDIR</span>.</span></span><br><span class="line"><span class="function"> -<span class="title">rpath</span> ............... <span class="title">Link</span> <span class="title">Qt</span> <span class="title">libraries</span> <span class="title">and</span> <span class="title">executables</span> <span class="title">using</span> <span class="title">the</span> <span class="title">library</span></span></span><br><span class="line"><span class="function"> <span class="title">install</span> <span class="title">path</span> <span class="title">as</span> <span class="title">a</span> <span class="title">runtime</span> <span class="title">library</span> <span class="title">path</span>. <span class="title">Similar</span> <span class="title">to</span></span></span><br><span class="line"><span class="function"> -<span class="title">R</span> <span class="title">LIBDIR</span>. <span class="title">On</span> <span class="title">Apple</span> <span class="title">platforms</span>, <span class="title">disabling</span> <span class="title">this</span> <span class="title">implies</span></span></span><br><span class="line"><span class="function"> <span class="title">using</span> <span class="title">absolute</span> <span class="title">install</span> <span class="title">names</span> (<span class="title">based</span> <span class="title">in</span> <span class="title">LIBDIR</span>) <span class="title">for</span></span></span><br><span class="line"><span class="function"> <span class="title">dynamic</span> <span class="title">libraries</span> <span class="title">and</span> <span class="title">frameworks</span>. [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">reduce</span>-<span class="title">exports</span> ...... <span class="title">Reduce</span> <span class="title">amount</span> <span class="title">of</span> <span class="title">exported</span> <span class="title">symbols</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">reduce</span>-<span class="title">relocations</span> .. <span class="title">Reduce</span> <span class="title">amount</span> <span class="title">of</span> <span class="title">relocations</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">plugin</span>-<span class="title">manifests</span> .... <span class="title">Embed</span> <span class="title">manifests</span> <span class="title">into</span> <span class="title">plugins</span> [<span class="title">no</span>] (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">static</span>-<span class="title">runtime</span> ...... <span class="title">With</span> -<span class="title">static</span>, <span class="title">use</span> <span class="title">static</span> <span class="title">runtime</span> [<span class="title">no</span>] (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">pch</span> ................. <span class="title">Use</span> <span class="title">precompiled</span> <span class="title">headers</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">ltcg</span> ................ <span class="title">Use</span> <span class="title">Link</span> <span class="title">Time</span> <span class="title">Code</span> <span class="title">Generation</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">linker</span> [<span class="title">bfd</span>,<span class="title">gold</span>,<span class="title">lld</span>] <span class="title">Force</span> <span class="title">use</span> <span class="title">of</span> <span class="title">the</span> <span class="title">GNU</span> <span class="title">ld</span>, <span class="title">GNU</span> <span class="title">gold</span> <span class="title">or</span> <span class="title">LLVM</span>/<span class="title">LLD</span> <span class="title">linker</span></span></span><br><span class="line"><span class="function"> <span class="title">instead</span> <span class="title">of</span> <span class="title">default</span> <span class="title">one</span> (<span class="title">GCC</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">incredibuild</span>-<span class="title">xge</span> .... <span class="title">Use</span> <span class="title">the</span> <span class="title">IncrediBuild</span> <span class="title">XGE</span> [<span class="title">no</span>] (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">ccache</span> .............. <span class="title">Use</span> <span class="title">the</span> <span class="title">ccache</span> <span class="title">compiler</span> <span class="title">cache</span> [<span class="title">no</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">make</span>-<span class="title">tool</span> <<span class="title">tool</span>> .... <span class="title">Use</span> <<span class="title">tool</span>> <span class="title">to</span> <span class="title">build</span> <span class="title">qmake</span> [<span class="title">nmake</span>] (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">mp</span> .................. <span class="title">Use</span> <span class="title">multiple</span> <span class="title">processors</span> <span class="title">for</span> <span class="title">compilation</span> (<span class="title">MSVC</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">warnings</span>-<span class="title">are</span>-<span class="title">errors</span> . <span class="title">Treat</span> <span class="title">warnings</span> <span class="title">as</span> <span class="title">errors</span> [<span class="title">no</span>; <span class="title">yes</span> <span class="title">if</span> -<span class="title">developer</span>-<span class="title">build</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">silent</span> .............. <span class="title">Reduce</span> <span class="title">the</span> <span class="title">build</span> <span class="title">output</span> <span class="title">so</span> <span class="title">that</span> <span class="title">warnings</span> <span class="title">and</span> <span class="title">errors</span></span></span><br><span class="line"><span class="function"> <span class="title">can</span> <span class="title">be</span> <span class="title">seen</span> <span class="title">more</span> <span class="title">easily</span></span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Build</span> <span class="title">environment</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">sysroot</span> <<span class="title">dir</span>> ....... <span class="title">Set</span> <<span class="title">dir</span>> <span class="title">as</span> <span class="title">the</span> <span class="title">target</span> <span class="title">sysroot</span></span></span><br><span class="line"><span class="function"> -<span class="title">gcc</span>-<span class="title">sysroot</span> ......... <span class="title">With</span> -<span class="title">sysroot</span>, <span class="title">pass</span> --<span class="title">sysroot</span> <span class="title">to</span> <span class="title">the</span> <span class="title">compiler</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">pkg</span>-<span class="title">config</span> .......... <span class="title">Use</span> <span class="title">pkg</span>-<span class="title">config</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">D</span> <<span class="title">string</span>> .......... <span class="title">Pass</span> <span class="title">additional</span> <span class="title">preprocessor</span> <span class="title">define</span></span></span><br><span class="line"><span class="function"> -<span class="title">I</span> <<span class="title">string</span>> .......... <span class="title">Pass</span> <span class="title">additional</span> <span class="title">include</span> <span class="title">path</span></span></span><br><span class="line"><span class="function"> -<span class="title">L</span> <<span class="title">string</span>> .......... <span class="title">Pass</span> <span class="title">additional</span> <span class="title">library</span> <span class="title">path</span></span></span><br><span class="line"><span class="function"> -<span class="title">F</span> <<span class="title">string</span>> .......... <span class="title">Pass</span> <span class="title">additional</span> <span class="title">framework</span> <span class="title">path</span> (<span class="title">Apple</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">sdk</span> <<span class="title">sdk</span>> ........... <span class="title">Build</span> <span class="title">Qt</span> <span class="title">using</span> <span class="title">Apple</span> <span class="title">provided</span> <span class="title">SDK</span> <<span class="title">sdk</span>>. <span class="title">The</span> <span class="title">argument</span></span></span><br><span class="line"><span class="function"> <span class="title">should</span> <span class="title">be</span> <span class="title">one</span> <span class="title">of</span> <span class="title">the</span> <span class="title">available</span> <span class="title">SDKs</span> <span class="title">as</span> <span class="title">listed</span> <span class="title">by</span></span></span><br><span class="line"><span class="function"> '<span class="title">xcodebuild</span> -<span class="title">showsdks</span>'.</span></span><br><span class="line"><span class="function"> <span class="title">Note</span> <span class="title">that</span> <span class="title">the</span> <span class="title">argument</span> <span class="title">applies</span> <span class="title">only</span> <span class="title">to</span> <span class="title">Qt</span> <span class="title">libraries</span></span></span><br><span class="line"><span class="function"> <span class="title">and</span> <span class="title">applications</span> <span class="title">built</span> <span class="title">using</span> <span class="title">the</span> <span class="title">target</span> <span class="title">mkspec</span> - <span class="title">not</span></span></span><br><span class="line"><span class="function"> <span class="title">host</span> <span class="title">tools</span> <span class="title">such</span> <span class="title">as</span> <span class="title">qmake</span>, <span class="title">moc</span>, <span class="title">rcc</span>, <span class="title">etc</span>.</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">android</span>-<span class="title">sdk</span> <span class="title">path</span> .... <span class="title">Set</span> <span class="title">Android</span> <span class="title">SDK</span> <span class="title">root</span> <span class="title">path</span> [$<span class="title">ANDROID_SDK_ROOT</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">android</span>-<span class="title">ndk</span> <span class="title">path</span> .... <span class="title">Set</span> <span class="title">Android</span> <span class="title">NDK</span> <span class="title">root</span> <span class="title">path</span> [$<span class="title">ANDROID_NDK_ROOT</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">android</span>-<span class="title">ndk</span>-<span class="title">platform</span> <span class="title">Set</span> <span class="title">Android</span> <span class="title">platform</span></span></span><br><span class="line"><span class="function"> -<span class="title">android</span>-<span class="title">ndk</span>-<span class="title">host</span> .... <span class="title">Set</span> <span class="title">Android</span> <span class="title">NDK</span> <span class="title">host</span> (<span class="title">linux</span>-<span class="title">x86</span>, <span class="title">linux</span>-<span class="title">x86_64</span>, <span class="title">etc</span>.)</span></span><br><span class="line"><span class="function"> [$<span class="title">ANDROID_NDK_HOST</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">android</span>-<span class="title">abis</span> ....... <span class="title">Comma</span> <span class="title">separated</span> <span class="title">Android</span> <span class="title">abis</span>, <span class="title">default</span> <span class="title">is</span>:</span></span><br><span class="line"><span class="function"> <span class="title">armeabi</span>-<span class="title">v7a</span>,<span class="title">arm64</span>-<span class="title">v8a</span>,<span class="title">x86</span>,<span class="title">x86_64</span></span></span><br><span class="line"><span class="function"> -<span class="title">android</span>-<span class="title">style</span>-<span class="title">assets</span> <span class="title">Automatically</span> <span class="title">extract</span> <span class="title">style</span> <span class="title">assets</span> <span class="title">from</span> <span class="title">the</span> <span class="title">device</span> <span class="title">at</span></span></span><br><span class="line"><span class="function"> <span class="title">run</span> <span class="title">time</span>. <span class="title">This</span> <span class="title">option</span> <span class="title">makes</span> <span class="title">the</span> <span class="title">Android</span> <span class="title">style</span> <span class="title">behave</span></span></span><br><span class="line"><span class="function"> <span class="title">correctly</span>, <span class="title">but</span> <span class="title">also</span> <span class="title">makes</span> <span class="title">the</span> <span class="title">Android</span> <span class="title">platform</span> <span class="title">plugin</span></span></span><br><span class="line"><span class="function"> <span class="title">incompatible</span> <span class="title">with</span> <span class="title">the</span> <span class="title">LGPL2</span>.1. [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Component</span> <span class="title">selection</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">skip</span> <<span class="title">repo</span>> ......... <span class="title">Exclude</span> <span class="title">an</span> <span class="title">entire</span> <span class="title">repository</span> <span class="title">from</span> <span class="title">the</span> <span class="title">build</span>.</span></span><br><span class="line"><span class="function"> -<span class="title">make</span> <<span class="title">part</span>> ......... <span class="title">Add</span> <<span class="title">part</span>> <span class="title">to</span> <span class="title">the</span> <span class="title">list</span> <span class="title">of</span> <span class="title">parts</span> <span class="title">to</span> <span class="title">be</span> <span class="title">built</span>.</span></span><br><span class="line"><span class="function"> <span class="title">Specifying</span> <span class="title">this</span> <span class="title">option</span> <span class="title">clears</span> <span class="title">the</span> <span class="title">default</span> <span class="title">list</span> <span class="title">first</span>.</span></span><br><span class="line"><span class="function"> [<span class="title">libs</span> <span class="title">and</span> <span class="title">examples</span>, <span class="title">also</span> <span class="title">tools</span> <span class="title">if</span> <span class="title">not</span> <span class="title">cross</span>-<span class="title">building</span>,</span></span><br><span class="line"><span class="function"> <span class="title">also</span> <span class="title">tests</span> <span class="title">if</span> -<span class="title">developer</span>-<span class="title">build</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">nomake</span> <<span class="title">part</span>> ....... <span class="title">Exclude</span> <<span class="title">part</span>> <span class="title">from</span> <span class="title">the</span> <span class="title">list</span> <span class="title">of</span> <span class="title">parts</span> <span class="title">to</span> <span class="title">be</span> <span class="title">built</span>.</span></span><br><span class="line"><span class="function"> -<span class="title">compile</span>-<span class="title">examples</span> .... <span class="title">When</span> <span class="title">unset</span>, <span class="title">install</span> <span class="title">only</span> <span class="title">the</span> <span class="title">sources</span> <span class="title">of</span> <span class="title">examples</span></span></span><br><span class="line"><span class="function"> [<span class="title">no</span> <span class="title">on</span> <span class="title">WebAssembly</span>, <span class="title">otherwise</span> <span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">gui</span> ................. <span class="title">Build</span> <span class="title">the</span> <span class="title">Qt</span> <span class="title">GUI</span> <span class="title">module</span> <span class="title">and</span> <span class="title">dependencies</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">widgets</span> ............. <span class="title">Build</span> <span class="title">the</span> <span class="title">Qt</span> <span class="title">Widgets</span> <span class="title">module</span> <span class="title">and</span> <span class="title">dependencies</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">no</span>-<span class="title">dbus</span> ............. <span class="title">Do</span> <span class="title">not</span> <span class="title">build</span> <span class="title">the</span> <span class="title">Qt</span> <span class="title">D</span>-<span class="title">Bus</span> <span class="title">module</span></span></span><br><span class="line"><span class="function"> [<span class="title">default</span> <span class="title">on</span> <span class="title">Android</span> <span class="title">and</span> <span class="title">Windows</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">dbus</span>-<span class="title">linked</span> ......... <span class="title">Build</span> <span class="title">Qt</span> <span class="title">D</span>-<span class="title">Bus</span> <span class="title">and</span> <span class="title">link</span> <span class="title">to</span> <span class="title">libdbus</span>-1 [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">dbus</span>-<span class="title">runtime</span> ........ <span class="title">Build</span> <span class="title">Qt</span> <span class="title">D</span>-<span class="title">Bus</span> <span class="title">and</span> <span class="title">dynamically</span> <span class="title">load</span> <span class="title">libdbus</span>-1 [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">accessibility</span> ....... <span class="title">Enable</span> <span class="title">accessibility</span> <span class="title">support</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> <span class="title">Note</span>: <span class="title">Disabling</span> <span class="title">accessibility</span> <span class="title">is</span> <span class="title">not</span> <span class="title">recommended</span>.</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Qt</span> <span class="title">comes</span> <span class="title">with</span> <span class="title">bundled</span> <span class="title">copies</span> <span class="title">of</span> <span class="title">some</span> 3<span class="title">rd</span> <span class="title">party</span> <span class="title">libraries</span>. <span class="title">These</span> <span class="title">are</span> <span class="title">used</span></span></span><br><span class="line"><span class="function"><span class="title">by</span> <span class="title">default</span> <span class="title">if</span> <span class="title">auto</span>-<span class="title">detection</span> <span class="title">of</span> <span class="title">the</span> <span class="title">respective</span> <span class="title">system</span> <span class="title">library</span> <span class="title">fails</span>.</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Core</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">doubleconversion</span> .... <span class="title">Select</span> <span class="title">used</span> <span class="title">double</span> <span class="title">conversion</span> <span class="title">library</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> <span class="title">No</span> <span class="title">implies</span> <span class="title">use</span> <span class="title">of</span> <span class="title">sscanf_l</span> <span class="title">and</span> <span class="title">snprintf_l</span> (<span class="title">imprecise</span>).</span></span><br><span class="line"><span class="function"> -<span class="title">glib</span> ................ <span class="title">Enable</span> <span class="title">Glib</span> <span class="title">support</span> [<span class="title">no</span>; <span class="title">auto</span> <span class="title">on</span> <span class="title">Unix</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">eventfd</span> ............. <span class="title">Enable</span> <span class="title">eventfd</span> <span class="title">support</span></span></span><br><span class="line"><span class="function"> -<span class="title">inotify</span> ............. <span class="title">Enable</span> <span class="title">inotify</span> <span class="title">support</span></span></span><br><span class="line"><span class="function"> -<span class="title">iconv</span> ............... <span class="title">Enable</span> <span class="title">iconv</span>(3) <span class="title">support</span> [<span class="title">posix</span>/<span class="title">sun</span>/<span class="title">gnu</span>/<span class="title">no</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">icu</span> ................. <span class="title">Enable</span> <span class="title">ICU</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">pcre</span> ................ <span class="title">Select</span> <span class="title">used</span> <span class="title">libpcre2</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">pps</span> ................. <span class="title">Enable</span> <span class="title">PPS</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">QNX</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">zlib</span> ................ <span class="title">Select</span> <span class="title">used</span> <span class="title">zlib</span> [<span class="title">system</span>/<span class="title">qt</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> <span class="title">Logging</span> <span class="title">backends</span>:</span></span><br><span class="line"><span class="function"> -<span class="title">journald</span> .......... <span class="title">Enable</span> <span class="title">journald</span> <span class="title">support</span> [<span class="title">no</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">syslog</span> ............ <span class="title">Enable</span> <span class="title">syslog</span> <span class="title">support</span> [<span class="title">no</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">slog2</span> ............. <span class="title">Enable</span> <span class="title">slog2</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">QNX</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Network</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">ssl</span> ................. <span class="title">Enable</span> <span class="title">either</span> <span class="title">SSL</span> <span class="title">support</span> <span class="title">method</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">no</span>-<span class="title">openssl</span> .......... <span class="title">Do</span> <span class="title">not</span> <span class="title">use</span> <span class="title">OpenSSL</span> [<span class="title">default</span> <span class="title">on</span> <span class="title">Apple</span> <span class="title">and</span> <span class="title">WinRT</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">openssl</span>-<span class="title">linked</span> ...... <span class="title">Use</span> <span class="title">OpenSSL</span> <span class="title">and</span> <span class="title">link</span> <span class="title">to</span> <span class="title">libssl</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">openssl</span>-<span class="title">runtime</span> ..... <span class="title">Use</span> <span class="title">OpenSSL</span> <span class="title">and</span> <span class="title">dynamically</span> <span class="title">load</span> <span class="title">libssl</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">schannel</span> ............ <span class="title">Use</span> <span class="title">Secure</span> <span class="title">Channel</span> [<span class="title">no</span>] (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">securetransport</span> ..... <span class="title">Use</span> <span class="title">SecureTransport</span> [<span class="title">auto</span>] (<span class="title">Apple</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">sctp</span> ................ <span class="title">Enable</span> <span class="title">SCTP</span> <span class="title">support</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">libproxy</span> ............ <span class="title">Enable</span> <span class="title">use</span> <span class="title">of</span> <span class="title">libproxy</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">system</span>-<span class="title">proxies</span> ...... <span class="title">Use</span> <span class="title">system</span> <span class="title">network</span> <span class="title">proxies</span> <span class="title">by</span> <span class="title">default</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Gui</span>, <span class="title">printing</span>, <span class="title">widget</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">cups</span> ................ <span class="title">Enable</span> <span class="title">CUPS</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">fontconfig</span> .......... <span class="title">Enable</span> <span class="title">Fontconfig</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">freetype</span> ............ <span class="title">Select</span> <span class="title">used</span> <span class="title">FreeType</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">harfbuzz</span> ............ <span class="title">Select</span> <span class="title">used</span> <span class="title">HarfBuzz</span>-<span class="title">NG</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Not</span> <span class="title">auto</span>-<span class="title">detected</span> <span class="title">on</span> <span class="title">Apple</span> <span class="title">and</span> <span class="title">Windows</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">gtk</span> ................. <span class="title">Enable</span> <span class="title">GTK</span> <span class="title">platform</span> <span class="title">theme</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">lgmon</span> ............... <span class="title">Enable</span> <span class="title">lgmon</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">QNX</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">no</span>-<span class="title">opengl</span> ........... <span class="title">Disable</span> <span class="title">OpenGL</span> <span class="title">support</span></span></span><br><span class="line"><span class="function"> -<span class="title">opengl</span> <<span class="title">api</span>> ........ <span class="title">Enable</span> <span class="title">OpenGL</span> <span class="title">support</span>. <span class="title">Supported</span> <span class="title">APIs</span>:</span></span><br><span class="line"><span class="function"> <span class="title">es2</span> (<span class="title">default</span> <span class="title">on</span> <span class="title">Windows</span>), <span class="title">desktop</span> (<span class="title">default</span> <span class="title">on</span> <span class="title">Unix</span>),</span></span><br><span class="line"><span class="function"> <span class="title">dynamic</span> (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">opengles3</span> ........... <span class="title">Enable</span> <span class="title">OpenGL</span> <span class="title">ES</span> 3.<span class="title">x</span> <span class="title">support</span> <span class="title">instead</span> <span class="title">of</span> <span class="title">ES</span> 2.<span class="title">x</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">egl</span> ................. <span class="title">Enable</span> <span class="title">EGL</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">angle</span> ............... <span class="title">Use</span> <span class="title">bundled</span> <span class="title">ANGLE</span> <span class="title">to</span> <span class="title">support</span> <span class="title">OpenGL</span> <span class="title">ES</span> 2.0 [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">combined</span>-<span class="title">angle</span>-<span class="title">lib</span> .. <span class="title">Merge</span> <span class="title">LibEGL</span> <span class="title">and</span> <span class="title">LibGLESv2</span> <span class="title">into</span> <span class="title">LibANGLE</span> (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">qpa</span> <<span class="title">name</span>> .......... <span class="title">Select</span> <span class="title">default</span> <span class="title">QPA</span> <span class="title">backend</span>(<span class="title">s</span>) (<span class="title">e.g</span>., <span class="title">xcb</span>, <span class="title">cocoa</span>, <span class="title">windows</span>)</span></span><br><span class="line"><span class="function"> <span class="title">A</span> <span class="title">prioritized</span> <span class="title">list</span> <span class="title">separated</span> <span class="title">by</span> <span class="title">semi</span>-<span class="title">colons</span>.</span></span><br><span class="line"><span class="function"> -<span class="title">xcb</span>-<span class="title">xlib</span>............. <span class="title">Enable</span> <span class="title">Xcb</span>-<span class="title">Xlib</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> <span class="title">Platform</span> <span class="title">backends</span>:</span></span><br><span class="line"><span class="function"> -<span class="title">direct2d</span> .......... <span class="title">Enable</span> <span class="title">Direct2D</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Windows</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">directfb</span> .......... <span class="title">Enable</span> <span class="title">DirectFB</span> <span class="title">support</span> [<span class="title">no</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">eglfs</span> ............. <span class="title">Enable</span> <span class="title">EGLFS</span> <span class="title">support</span> [<span class="title">auto</span>; <span class="title">no</span> <span class="title">on</span> <span class="title">Android</span> <span class="title">and</span> <span class="title">Windows</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">gbm</span> ............... <span class="title">Enable</span> <span class="title">backends</span> <span class="title">for</span> <span class="title">GBM</span> [<span class="title">auto</span>] (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">kms</span> ............... <span class="title">Enable</span> <span class="title">backends</span> <span class="title">for</span> <span class="title">KMS</span> [<span class="title">auto</span>] (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">linuxfb</span> ........... <span class="title">Enable</span> <span class="title">Linux</span> <span class="title">Framebuffer</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">xcb</span> ............... <span class="title">Enable</span> <span class="title">X11</span> <span class="title">support</span>. <span class="title">Select</span> <span class="title">used</span> <span class="title">xcb</span>-* <span class="title">libraries</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> (-<span class="title">qt</span>-<span class="title">xcb</span> <span class="title">still</span> <span class="title">uses</span> <span class="title">system</span> <span class="title">version</span> <span class="title">of</span> <span class="title">libxcb</span> <span class="title">itself</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> <span class="title">Input</span> <span class="title">backends</span>:</span></span><br><span class="line"><span class="function"> -<span class="title">libudev</span>............ <span class="title">Enable</span> <span class="title">udev</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">evdev</span> ............. <span class="title">Enable</span> <span class="title">evdev</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">imf</span> ............... <span class="title">Enable</span> <span class="title">IMF</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">QNX</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">libinput</span> .......... <span class="title">Enable</span> <span class="title">libinput</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">mtdev</span> ............. <span class="title">Enable</span> <span class="title">mtdev</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">tslib</span> ............. <span class="title">Enable</span> <span class="title">tslib</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">xcb</span>-<span class="title">xinput</span> ........ <span class="title">Enable</span> <span class="title">XInput2</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">xkbcommon</span> ......... <span class="title">Enable</span> <span class="title">key</span> <span class="title">mapping</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> <span class="title">Image</span> <span class="title">formats</span>:</span></span><br><span class="line"><span class="function"> -<span class="title">gif</span> ............... <span class="title">Enable</span> <span class="title">reading</span> <span class="title">support</span> <span class="title">for</span> <span class="title">GIF</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">ico</span> ............... <span class="title">Enable</span> <span class="title">support</span> <span class="title">for</span> <span class="title">ICO</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">libpng</span> ............ <span class="title">Select</span> <span class="title">used</span> <span class="title">libpng</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">libjpeg</span> ........... <span class="title">Select</span> <span class="title">used</span> <span class="title">libjpeg</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Database</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">sql</span>-<<span class="title">driver</span>> ........ <span class="title">Enable</span> <span class="title">SQL</span> <<span class="title">driver</span>> <span class="title">plugin</span>. <span class="title">Supported</span> <span class="title">drivers</span>:</span></span><br><span class="line"><span class="function"> <span class="title">db2</span> <span class="title">ibase</span> <span class="title">mysql</span> <span class="title">oci</span> <span class="title">odbc</span> <span class="title">psql</span> <span class="title">sqlite2</span> <span class="title">sqlite</span> <span class="title">tds</span></span></span><br><span class="line"><span class="function"> [<span class="title">all</span> <span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">sqlite</span> .............. <span class="title">Select</span> <span class="title">used</span> <span class="title">sqlite3</span> [<span class="title">system</span>/<span class="title">qt</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Qt3D</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">assimp</span> .............. <span class="title">Select</span> <span class="title">used</span> <span class="title">assimp</span> <span class="title">library</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">profile</span>-<span class="title">jobs</span> ... <span class="title">Enable</span> <span class="title">jobs</span> <span class="title">profiling</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">profile</span>-<span class="title">gl</span> ..... <span class="title">Enable</span> <span class="title">OpenGL</span> <span class="title">profiling</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">simd</span> ........... <span class="title">Select</span> <span class="title">level</span> <span class="title">of</span> <span class="title">SIMD</span> <span class="title">support</span> [<span class="title">no</span>/<span class="title">sse2</span>/<span class="title">avx2</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">render</span> ......... <span class="title">Enable</span> <span class="title">the</span> <span class="title">Qt3D</span> <span class="title">Render</span> <span class="title">aspect</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">input</span> .......... <span class="title">Enable</span> <span class="title">the</span> <span class="title">Qt3D</span> <span class="title">Input</span> <span class="title">aspect</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">logic</span> .......... <span class="title">Enable</span> <span class="title">the</span> <span class="title">Qt3D</span> <span class="title">Logic</span> <span class="title">aspect</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">extras</span> ......... <span class="title">Enable</span> <span class="title">the</span> <span class="title">Qt3D</span> <span class="title">Extras</span> <span class="title">aspect</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">qt3d</span>-<span class="title">animation</span>....... <span class="title">Enable</span> <span class="title">the</span> <span class="title">Qt3D</span> <span class="title">Animation</span> <span class="title">aspect</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Further</span> <span class="title">image</span> <span class="title">format</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">jasper</span> .............. <span class="title">Enable</span> <span class="title">JPEG</span>-2000 <span class="title">support</span> <span class="title">using</span> <span class="title">the</span> <span class="title">JasPer</span> <span class="title">library</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">mng</span> ................. <span class="title">Enable</span> <span class="title">MNG</span> <span class="title">support</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">tiff</span> ................ <span class="title">Enable</span> <span class="title">TIFF</span> <span class="title">support</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">webp</span> ................ <span class="title">Enable</span> <span class="title">WEBP</span> <span class="title">support</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">Multimedia</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">pulseaudio</span> .......... <span class="title">Enable</span> <span class="title">PulseAudio</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">alsa</span> ................ <span class="title">Enable</span> <span class="title">ALSA</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">no</span>-<span class="title">gstreamer</span> ........ <span class="title">Disable</span> <span class="title">support</span> <span class="title">for</span> <span class="title">GStreamer</span></span></span><br><span class="line"><span class="function"> -<span class="title">gstreamer</span> [<span class="title">version</span>] . <span class="title">Enable</span> <span class="title">GStreamer</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> <span class="title">With</span> <span class="title">no</span> <span class="title">parameter</span>, 1.0 <span class="title">is</span> <span class="title">tried</span> <span class="title">first</span>, <span class="title">then</span> 0.10.</span></span><br><span class="line"><span class="function"> -<span class="title">evr</span> ................. <span class="title">Enables</span> <span class="title">EVR</span> <span class="title">in</span> <span class="title">DirectShow</span> <span class="title">and</span> <span class="title">WMF</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">QtQuick3D</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">assimp</span> .............. <span class="title">Select</span> <span class="title">used</span> <span class="title">assimp</span> <span class="title">library</span> [<span class="title">system</span>/<span class="title">qt</span>/<span class="title">no</span>]</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">TextToSpeech</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">flite</span> ............... <span class="title">Enable</span> <span class="title">Flite</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">flite</span>-<span class="title">alsa</span> .......... <span class="title">Enable</span> <span class="title">Flite</span> <span class="title">with</span> <span class="title">ALSA</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">speechd</span> ............. <span class="title">Enable</span> <span class="title">speech</span> <span class="title">dispatcher</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Unix</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"><span class="title">WebEngine</span> <span class="title">options</span>:</span></span><br><span class="line"><span class="function"></span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">alsa</span> ................ <span class="title">Enable</span> <span class="title">ALSA</span> <span class="title">support</span> [<span class="title">auto</span>] (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">pulseaudio</span> .......... <span class="title">Enable</span> <span class="title">PulseAudio</span> <span class="title">support</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">embedded</span>-<span class="title">build</span> ...... <span class="title">Enable</span> <span class="title">Linux</span> <span class="title">embedded</span> <span class="title">build</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">icu</span> ................. <span class="title">Use</span> <span class="title">system</span> <span class="title">ICU</span> <span class="title">libraries</span> [<span class="title">system</span>/<span class="title">qt</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">ffmpeg</span> .............. <span class="title">Use</span> <span class="title">system</span> <span class="title">FFmpeg</span> <span class="title">libraries</span> [<span class="title">system</span>/<span class="title">qt</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">opus</span> ................ <span class="title">Use</span> <span class="title">system</span> <span class="title">Opus</span> <span class="title">libraries</span> [<span class="title">system</span>/<span class="title">qt</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">webp</span> ................ <span class="title">Use</span> <span class="title">system</span> <span class="title">WebP</span> <span class="title">libraries</span> [<span class="title">system</span>/<span class="title">qt</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">Linux</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">pepper</span>-<span class="title">plugins</span> ...... <span class="title">Enable</span> <span class="title">use</span> <span class="title">of</span> <span class="title">Pepper</span> <span class="title">Flash</span> <span class="title">and</span> <span class="title">Widevine</span></span></span><br><span class="line"><span class="function"> <span class="title">plugins</span> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">printing</span>-<span class="title">and</span>-<span class="title">pdf</span> .... <span class="title">Enable</span> <span class="title">use</span> <span class="title">of</span> <span class="title">printing</span> <span class="title">and</span> <span class="title">output</span> <span class="title">to</span> <span class="title">PDF</span></span></span><br><span class="line"><span class="function"> [<span class="title">auto</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">proprietary</span>-<span class="title">codecs</span> .. <span class="title">Enable</span> <span class="title">support</span> <span class="title">for</span> <span class="title">proprietary</span> <span class="title">codecs</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">spellchecker</span> ........ <span class="title">Enable</span> <span class="title">support</span> <span class="title">for</span> <span class="title">spellchecker</span> [<span class="title">yes</span>]</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">native</span>-<span class="title">spellchecker</span> . <span class="title">Enable</span> <span class="title">support</span> <span class="title">for</span> <span class="title">native</span> <span class="title">spellchecker</span> [<span class="title">no</span>]</span></span><br><span class="line"><span class="function"> (<span class="title">macOS</span> <span class="title">only</span>)</span></span><br><span class="line"><span class="function"> -<span class="title">webengine</span>-<span class="title">webrtc</span> .............. <span class="title">Enable</span> <span class="title">support</span> <span class="title">for</span> <span class="title">WebRTC</span> [<span class="title">auto</span>]</span></span><br></pre></td></tr></table></figure><p>3. </p>]]></content>
<summary type="html">
<h2 id="步骤"><a href="#步骤" class="headerlink" title="步骤"></a>步骤</h2><ol>
<li>下载Qt源码,直接下载代码压缩包,通过git下载代码太慢</li>
<li>在vs cmd控制台中 进入源码根目录 config
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="C++" scheme="https://969975553.gitee.io/tags/C/"/>
<category term="编译" scheme="https://969975553.gitee.io/tags/%E7%BC%96%E8%AF%91/"/>
</entry>
<entry>
<title>processhacker源码分析</title>
<link href="https://969975553.gitee.io/2020/11/27/processhacker%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/"/>
<id>https://969975553.gitee.io/2020/11/27/processhacker%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/</id>
<published>2020-11-27T06:30:04.000Z</published>
<updated>2021-03-23T07:32:49.104Z</updated>
<content type="html"><![CDATA[<h2 id="preview"><a href="#preview" class="headerlink" title="preview"></a>preview</h2><ol><li><p>PhInitializePhLibEx<br> PhInitializeWindowsVersion RtlGetVersion<br> PhInitializeSystemInformation NtQuerySystemInformation<br> PhHeapInitialization RtlCreateHeap RtlSetHeapInformation<br> PhQueuedLockInitialization NtCreateKeyedEvent PhQueuedLockSpinCount = 2000<br> PhRefInitialization RtlInitializeSListHead PhInitializeFreeList TlsAlloc KUSER_SHARED_DATA 内核共享区域<br> PhBaseInitialization </p></li><li><p>NtCreateMutant</p></li><li><p>PhGuiSupportInitialization PhCreateHashtable</p></li><li><p>PhSettingsInitialization PhAddDefaultSettings PhUpdateCachedSettings</p></li><li><p>PeInitializeSettings 初始化参数 appdata中xml配置</p></li><li><p>PvPropInitialization</p></li><li><p>PhTreeNewInitialization</p></li><li><p>PhLoadMappedImageEx PhMapViewOfEntireFile</p><p> #define IMAGE_DOS_SIGNATURE 0x5A4D // MZ<br> #define IMAGE_ELF_SIGNATURE 0x457f // “\x7fELF”</p></li><li><p>PvPeProperties<br> PrivateExtractIconExW 获取图标user32.dll<br> PvpLoadDbgHelp InitializeListHead PhInitializeQueuedLock PhInitializeAvlTree<br> PhLoadModuleSymbolProvider PhfAcquireFastLockExclusive 锁定pdb<br> PvCreatePropContext</p></li></ol><h2 id="processhacker"><a href="#processhacker" class="headerlink" title="processhacker"></a>processhacker</h2><ol><li><p>PHP_BASE_THREAD_DBG teb processid threadid </p></li><li><p>PhInitializePhLibEx(同上)</p></li><li><p>PhInitializeDirectoryPolicy GetApplicationDirectory SetCurrentDirectory</p></li><li><p>PhInitializeExceptionPolicy WIN7以上 GetErrorMode RtlSetUnhandledExceptionFilter</p></li><li><p>PhInitializeNamespacePolicy mutex</p></li><li><p>PhInitializeMitigationPolicy //Mitigation:缓解 <a href="https://docs.microsoft.com/windows/security/threat-protection/overview-of-threat-mitigations-in-windows-10">https://docs.microsoft.com/windows/security/threat-protection/overview-of-threat-mitigations-in-windows-10</a></p></li><li><p>PhInitializeRestartPolicy //vista 因为更新等原因重启后 重新启动计算机应用程序 RegisterApplicationRestart EWX_RESTARTAPPS<br>一般方式: WM_QUERYENDSESSION RegisterApplicationRestart 系统重启是用ExitWindowsEx+EWX_RESTARTAPPS 或者InitiateShutdown+SHUTDOWN_RESTARTAPPS</p></li><li><p>PhInitializeAppSystem<br> PhProcessProviderInitialization </p><pre><code> PhProcessImageListInitialization</code></pre><p> PhServiceProviderInitialization<br> PhNetworkProviderInitialization</p></li></ol>]]></content>
<summary type="html">
<h2 id="preview"><a href="#preview" class="headerlink" title="preview"></a>preview</h2><ol>
<li><p>PhInitializePhLibEx<br> PhInitializeWindo
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="源码" scheme="https://969975553.gitee.io/tags/%E6%BA%90%E7%A0%81/"/>
</entry>
<entry>
<title>日志系统</title>
<link href="https://969975553.gitee.io/2020/11/26/%E6%97%A5%E5%BF%97%E7%B3%BB%E7%BB%9F/"/>
<id>https://969975553.gitee.io/2020/11/26/%E6%97%A5%E5%BF%97%E7%B3%BB%E7%BB%9F/</id>
<published>2020-11-26T03:13:26.000Z</published>
<updated>2020-11-26T03:21:34.622Z</updated>
<content type="html"><![CDATA[<h2 id="日志需求"><a href="#日志需求" class="headerlink" title="日志需求"></a>日志需求</h2><p>一个完整的集中式日志系统,需要包含以下几个主要特点:</p><ol><li>收集-能够采集多种来源的日志数据</li><li>传输-能够稳定的把日志数据传输到中央系统</li><li>存储-如何存储日志数据</li><li>分析-可以支持 UI 分析</li><li>警告-能够提供错误报告,监控机制</li></ol><p>ELK Elasticsearch + Logstash + Kibana</p><p>Elasticsearch 是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。<br>Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去<br>Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志</p><p>Filebeat隶属于Beats。目前Beats包含四种工具:</p><p>Packetbeat(搜集网络流量数据)<br>Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)<br>Filebeat(搜集文件数据)<br>Winlogbeat (搜集 Windows 事件日志数据)</p><p>elastic/beats <a href="https://github.com/elastic/beats">https://github.com/elastic/beats</a></p>]]></content>
<summary type="html">
<h2 id="日志需求"><a href="#日志需求" class="headerlink" title="日志需求"></a>日志需求</h2><p>一个完整的集中式日志系统,需要包含以下几个主要特点:</p>
<ol>
<li>收集-能够采集多种来源的日志数据</li>
</summary>
</entry>
<entry>
<title>Github搜索技巧</title>
<link href="https://969975553.gitee.io/2020/11/23/Github%E6%90%9C%E7%B4%A2%E6%8A%80%E5%B7%A7/"/>
<id>https://969975553.gitee.io/2020/11/23/Github%E6%90%9C%E7%B4%A2%E6%8A%80%E5%B7%A7/</id>
<published>2020-11-23T03:52:59.000Z</published>
<updated>2021-03-23T07:32:32.710Z</updated>
<content type="html"><![CDATA[<p>参数解析:<br><a href="https://github.com/search?l=C++&o=desc&p=2&q=gui&s=stars&type=Repositories">https://github.com/search?l=C%2B%2B&o=desc&p=2&q=gui&s=stars&type=Repositories</a><br>l language c++ l=C%2B%2B<br>o order o=desc 降序 asc升序<br>p page p=2 第2页<br>q<br>s = forks stars</p>]]></content>
<summary type="html">
<p>参数解析:<br><a href="https://github.com/search?l=C++&amp;o=desc&amp;p=2&amp;q=gui&amp;s=stars&amp;type=Repositories">https://github.com/sear
</summary>
</entry>
<entry>
<title>陈硕的cpp工程实践总结</title>
<link href="https://969975553.gitee.io/2020/10/20/%E9%99%88%E7%A1%95%E7%9A%84cpp%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5%E6%80%BB%E7%BB%93/"/>
<id>https://969975553.gitee.io/2020/10/20/%E9%99%88%E7%A1%95%E7%9A%84cpp%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5%E6%80%BB%E7%BB%93/</id>
<published>2020-10-20T03:36:01.000Z</published>
<updated>2020-10-21T12:06:52.692Z</updated>
<content type="html"><![CDATA[<ol><li>多行注释也用// 多人协作时方便 参数换行写</li><li>尽量不要使用STL中iostream</li><li>避免使用虚函数作为库接口</li><li>库开发多用impl保证接口不变</li></ol>]]></content>
<summary type="html">
<ol>
<li>多行注释也用// 多人协作时方便 参数换行写</li>
<li>尽量不要使用STL中iostream</li>
<li>避免使用虚函数作为库接口</li>
<li>库开发多用impl保证接口不变</li>
</ol>
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="c++" scheme="https://969975553.gitee.io/tags/c/"/>
<category term="工程实践" scheme="https://969975553.gitee.io/tags/%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5/"/>
</entry>
<entry>
<title>模拟音乐的频率公式</title>
<link href="https://969975553.gitee.io/2020/10/14/%E6%A8%A1%E6%8B%9F%E9%9F%B3%E4%B9%90%E7%9A%84%E9%A2%91%E7%8E%87%E5%85%AC%E5%BC%8F/"/>
<id>https://969975553.gitee.io/2020/10/14/%E6%A8%A1%E6%8B%9F%E9%9F%B3%E4%B9%90%E7%9A%84%E9%A2%91%E7%8E%87%E5%85%AC%E5%BC%8F/</id>
<published>2020-10-14T02:45:23.000Z</published>
<updated>2020-10-14T09:56:23.000Z</updated>
<content type="html">< {</span><br><span class="line"> <span class="keyword">if</span> (note < <span class="number">0</span> || note > <span class="number">119</span>) <span class="keyword">return</span> <span class="number">-1.0f</span>;</span><br><span class="line"> <span class="keyword">return</span> <span class="number">440.0f</span> *</span><br><span class="line"> <span class="built_in">std</span>::<span class="built_in">pow</span>(<span class="number">2.0f</span>, <span class="keyword">static_cast</span><<span class="keyword">float</span>>(note - <span class="number">57</span>) / <span class="number">12.0f</span>);</span><br><span class="line"> };</span><br><span class="line"></span><br><span class="line"> <span class="keyword">constexpr</span> <span class="keyword">auto</span> get_duration = [](<span class="keyword">const</span> <span class="keyword">float</span> duration) {</span><br><span class="line"> <span class="keyword">return</span> <span class="number">1600</span> * duration;</span><br><span class="line"> };</span><br><span class="line"></span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& [note, duration] : notes)</span><br><span class="line"> {</span><br><span class="line"> ::Beep(<span class="keyword">static_cast</span><DWORD>(get_frequency(note)),</span><br><span class="line"> <span class="keyword">static_cast</span><DWORD>(get_duration(duration)));</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">} <span class="comment">// namespace BeepMusic</span></span><br></pre></td></tr></table></figure></code></pre><p>其中有个公式<br> $$<br> 440 \times 2 ^ {\frac{(x-57)}{12}}<br> $$<br> 哪来的?</p><p>经反复查找资料<br> MIDI代表乐器数字接口。该标准指定了软件和电子设备可以传输和接收音乐的方式。</p><p>另外一个公式在开源项目 audacity<br> $$<br> 440 \times 2 ^ {\frac{(x-69)}{12}}<br> $$</p><p>这个2个公式本身是什么逻辑,哪里来的,很难猜到,需要了解乐理知识</p><h3 id="乐理知识"><a href="#乐理知识" class="headerlink" title="乐理知识"></a>乐理知识</h3><ul><li><p>乐音体系: 有固定音高的音(乐音)的总和,叫做乐音体系。 一般的钢琴 88琴键 $A_2 - C^5$</p></li><li><p>音级: 在乐音体系中的每个音,就叫做“音级”。音级包括有基本音级和变化音级两种。 自然</p></li><li><p>音列:将乐音体系中的音,依照音高关系和次序,由低到高(上行)或由高向低(下行)排列起来,叫做“音列”。</p></li><li><p>半音: 在整个乐音体系中,相邻的两个音级(不论基本音级或变化音级)之间的音高关系就是“半音”,半音是音高关系中的最小单位。用分数1/2来标记。</p></li><li><p>全音: 在乐音体系中,两个半音相加,就形成了全音。用阿拉伯数字1来标记。</p></li><li><p>音名: 在乐音体系中,七个具有独立名称的音级叫做基本音级(也叫自然音级) “C D E F G A B” 钢琴白键都是基本音级</p></li><li><p>变化音级: # 升音级 $^#C$ 升半音 , b 降音级 $^bD$ 降半音 , # 重升音级 $^×E$ 升Q全音 , bb 重降音级 $^{bb}F$ 降半音</p></li><li><p>大谱钢琴键盘对照表 <img src="paino.gif" alt="对照表"></p></li></ul><h4 id="标准音"><a href="#标准音" class="headerlink" title="标准音"></a>标准音</h4><p>中央C 440Hz 第一国际高音<br>小字a $a^1 = 435 hz$ 第二国际高音 演奏会音高</p><h4 id="音律关系"><a href="#音律关系" class="headerlink" title="音律关系"></a>音律关系</h4><h5 id="纯律"><a href="#纯律" class="headerlink" title="纯律"></a>纯律</h5><p>西洋乐器</p><h5 id="五度相生律"><a href="#五度相生律" class="headerlink" title="五度相生律"></a>五度相生律</h5><p>五度相生律又叫“三分损益律”,它是按纯五度的关系向上或向下推算的办法,来找出整个各个音级的精确高度。即是用分音列中第二分音与第三分音之间的音高关系,连续相生而求得出的各个音级的准确音高。 民族乐器。</p><h5 id="十二平均律"><a href="#十二平均律" class="headerlink" title="十二平均律"></a>十二平均律</h5><p>将纯八度分成十二个均等的部分的音律叫做十二平均律。其中每一个部分就是一个半音,每个半音的距离是相等的,它的最大好处是转调方便。十二平均律多用在钢琴、手风琴、电子琴、风琴。</p><h3 id="最终代码公式"><a href="#最终代码公式" class="headerlink" title="最终代码公式"></a>最终代码公式</h3><pre><code><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">float</span> midi[<span class="number">127</span>];</span><br><span class="line"><span class="keyword">int</span> a = <span class="number">440</span>; <span class="comment">// a is 440 hz...</span></span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">int</span> x = <span class="number">0</span>; x < <span class="number">127</span>; ++x)</span><br><span class="line">{</span><br><span class="line"> midi[x] = (a / <span class="number">32</span>) * (<span class="number">2</span> ^ ((x - <span class="number">9</span>) / <span class="number">12</span>));</span><br><span class="line">}</span><br></pre></td></tr></table></figure></code></pre><p>公式<br> $$<br> \frac{440}{32} \times 2 ^ {\frac{(x-9)}{12}}<br> $$</p><h3 id="附录"><a href="#附录" class="headerlink" title="附录"></a>附录</h3><pre> MIDI MIDI MIDI Note Frequency Note Frequency Note Frequency C1 0 8.1757989156 12 16.3515978313 24 32.7031956626 Db 1 8.6619572180 13 17.3239144361 25 34.6478288721 D 2 9.1770239974 14 18.3540479948 26 36.7080959897 Eb 3 9.7227182413 15 19.4454364826 27 38.8908729653 E 4 10.3008611535 16 20.6017223071 28 41.2034446141 F 5 10.9133822323 17 21.8267644646 29 43.6535289291 Gb 6 11.5623257097 18 23.1246514195 30 46.2493028390 G 7 12.2498573744 19 24.4997147489 31 48.9994294977 Ab 8 12.9782717994 20 25.9565435987 32 51.9130871975 A 9 13.7500000000 21 27.5000000000 33 55.0000000000 Bb 10 14.5676175474 22 29.1352350949 34 58.2704701898 B 11 15.4338531643 23 30.8677063285 35 61.7354126570 C4 36 65.4063913251 48 130.8127826503 60 261.6255653006 Db 37 69.2956577442 49 138.5913154884 61 277.1826309769 D 38 73.4161919794 50 146.8323839587 62 293.6647679174 Eb 39 77.7817459305 51 155.5634918610 63 311.1269837221 E 40 82.4068892282 52 164.8137784564 64 329.6275569129 F 41 87.3070578583 53 174.6141157165 65 349.2282314330 Gb 42 92.4986056779 54 184.9972113558 66 369.9944227116 G 43 97.9988589954 55 195.9977179909 67 391.9954359817 Ab 44 103.8261743950 56 207.6523487900 68 415.3046975799 A 45 110.0000000000 57 220.0000000000 69 440.0000000000 Bb 46 116.5409403795 58 233.0818807590 70 466.1637615181 B 47 123.4708253140 59 246.9416506281 71 493.8833012561 C7 72 523.2511306012 84 1046.5022612024 96 2093.0045224048 Db 73 554.3652619537 85 1108.7305239075 97 2217.4610478150 D 74 587.3295358348 86 1174.6590716696 98 2349.3181433393 Eb 75 622.2539674442 87 1244.5079348883 99 2489.0158697766 E 76 659.2551138257 88 1318.5102276515 100 2637.0204553030 F 77 698.4564628660 89 1396.9129257320 101 2793.8258514640 Gb 78 739.9888454233 90 1479.9776908465 102 2959.9553816931 G 79 783.9908719635 91 1567.9817439270 103 3135.9634878540 Ab 80 830.6093951599 92 1661.2187903198 104 3322.4375806396 A 81 880.0000000000 93 1760.0000000000 105 3520.0000000000 Bb 82 932.3275230362 94 1864.6550460724 106 3729.3100921447 B 83 987.7666025122 95 1975.5332050245 107 3951.0664100490 C10 108 4186.0090448096 120 8372.0180896192 Db 109 4434.9220956300 121 8869.8441912599 D 110 4698.6362866785 122 9397.2725733570 Eb 111 4978.0317395533 123 9956.0634791066 E 112 5274.0409106059 124 10548.0818212118 F 113 5587.6517029281 125 11175.3034058561 Gb 114 5919.9107633862 126 11839.8215267723 G 115 6271.9269757080 127 12543.8539514160 Ab 116 6644.8751612791 A 117 7040.0000000000 Bb 118 7458.6201842894 B 119 7902.1328200980</pre>]]></content>
<summary type="html">
<h3 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h3><p>昨天在翻阅taiga源代码的时候发现了一个神奇的Windows API Beep函数, 突然想到曾经有人跟我说过可以用Beep播放一首歌曲,
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="c++" scheme="https://969975553.gitee.io/tags/c/"/>
<category term="音乐" scheme="https://969975553.gitee.io/tags/%E9%9F%B3%E4%B9%90/"/>
</entry>
<entry>
<title>Windows程序诊断技术</title>
<link href="https://969975553.gitee.io/2020/09/10/Windows%E7%A8%8B%E5%BA%8F%E8%AF%8A%E6%96%AD%E6%8A%80%E6%9C%AF/"/>
<id>https://969975553.gitee.io/2020/09/10/Windows%E7%A8%8B%E5%BA%8F%E8%AF%8A%E6%96%AD%E6%8A%80%E6%9C%AF/</id>
<published>2020-09-10T03:34:24.000Z</published>
<updated>2020-10-14T03:35:17.243Z</updated>
<content type="html"><![CDATA[<h2 id="诊断程序"><a href="#诊断程序" class="headerlink" title="诊断程序"></a>诊断程序</h2><p>Windows具有支持桌面应用程序中以及桌面应用程序中的诊断的API和服务。</p><h3 id="相关"><a href="#相关" class="headerlink" title="相关"></a>相关</h3><ul><li><p>评估执行引擎(Assessment Execution Engine) AXE API Win7 以上 AxeHosting.h 查不到更多信息了</p></li><li><p>调试和错误处理</p></li><li><p>硬件计数器分析</p></li><li><p>网络诊断框架</p></li><li><p>网络监控器</p></li><li><p>性能计数器</p></li><li><p>性能日志和警报</p></li><li><p>流程快照</p></li><li><p>流程状态API</p></li><li><p>系统事件通知服务</p></li><li><p>系统监控器</p></li><li><p>工具帮助库</p></li><li><p>Windows错误报告</p></li><li><p>Windows事件</p></li><li><p>Windows Performance Analyzer(WPA)</p></li><li><p>Windows Performance Toolkit(WPT)</p></li><li><p>Windows故障排除平台</p></li></ul>]]></content>
<summary type="html">
<h2 id="诊断程序"><a href="#诊断程序" class="headerlink" title="诊断程序"></a>诊断程序</h2><p>Windows具有支持桌面应用程序中以及桌面应用程序中的诊断的API和服务。</p>
<h3 id="相关"><a href
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="windows" scheme="https://969975553.gitee.io/tags/windows/"/>
</entry>
<entry>
<title>windows安全性</title>
<link href="https://969975553.gitee.io/2020/05/07/windows%E5%AE%89%E5%85%A8%E6%80%A7/"/>
<id>https://969975553.gitee.io/2020/05/07/windows%E5%AE%89%E5%85%A8%E6%80%A7/</id>
<published>2020-05-07T09:27:41.000Z</published>
<updated>2021-03-11T08:38:50.172Z</updated>
<content type="html"><</code></pre><h4 id="访问控制模型"><a href="#访问控制模型" class="headerlink" title="访问控制模型"></a>访问控制模型</h4><ol><li><p>Access tokens</p></li><li><p>Security descriptors</p><p> 每个进程都拥有用户登陆时创建的访问令牌。<br> 访问令牌中包含安全标识符<br> 安全描述符中包含用户的帐户以及用户所属的任何组帐户</p></li><li><p>ACL 访问控制列表</p><p> DACL<br> SACL 进程必须要有 SE_SECURITY_NAME特权</p><p> ACE Access Rights and Access Masks</p><table><thead><tr><th>ACE类型</th><th>描述</th></tr></thead><tbody><tr><td>Access-denied ACE</td><td>Used in a discretionary access control list (DACL) to deny access rights to a trustee.</td></tr><tr><td>Access-allowed ACE</td><td>Used in a DACL to allow access rights to a trustee.</td></tr><tr><td>System-audit ACE</td><td>Used in a system access control list (SACL) to generate an audit record when the trustee attempts to exercise the specified access rights.</td></tr></tbody></table><p> ==文件目录特有==</p><table><thead><tr><th>ACE类型</th><th>描述</th></tr></thead><tbody><tr><td>Access-denied object ACE</td><td>Used in a DACL to deny a trustee access to a property or property set on the object, or to limit ACE inheritance to a specified type of child object. Uses the ACCESS_DENIED_OBJECT_ACE structure.</td></tr><tr><td>Access-allowed object ACE</td><td>Used in a DACL to allow a trustee access to a property or property set on the object, or to limit ACE inheritance to a specified type of child object. Uses the ACCESS_ALLOWED_OBJECT_ACE structure.</td></tr><tr><td>SSystem-audit object ACE</td><td>Used in a SACL to log a trustee’s attempts to access a property or property set on the object, or to limit ACE inheritance to a specified type of child object. Uses the SYSTEM_AUDIT_OBJECT_ACE structure.</td></tr></tbody></table></li><li><p>Trustees 委托人</p><p> 用户账户、组账户、登录会话</p></li><li><p>Access Rights and Access Masks 访问权限和访问掩码</p><ul><li>Generic access rights 通用访问权限<ul><li>GENERIC_ALL</li><li>GENERIC_EXECUTE</li><li>GENERIC_READ</li><li>GENERIC_WRITE</li></ul></li><li>Standard access rights 标准访问权限<ul><li>DELETE</li><li>READ_CONTROL</li><li>SYNCHRONIZE</li><li>WRITE_DAC</li><li>WRITE_OWNER</li></ul></li><li>SACL access right SACL访问权限<ol><li>进程 AdjustTokenPrivileges 启用 SE_SECURITY_NAME</li><li>Request the ACCESS_SYSTEM_SECURITY access right when you open a handle to the object.</li><li>Get or set the object’s SACL by using a function such as GetSecurityInfo or SetSecurityInfo.</li><li>进程 AdjustTokenPrivileges 禁用 SE_SECURITY_NAME</li></ol></li><li>Directory services access rights 目录服务访问权限<ul><li>ACTRL_DS_OPEN</li><li>ACTRL_DS_CREATE_CHILD</li><li>ACTRL_DS_DELETE_CHILD</li><li>ACTRL_DS_LIST 枚举</li><li>ACTRL_DS_READ_PROP</li><li>ACTRL_DS_WRITE_PROP</li><li>ACTRL_DS_SELF 仅在执行对象支持的经过验证的权限检查后才允许访问。此标志可以单独用于执行对象的所有已验证权限检查,也可以与特定已验证权限的标识符组合以仅执行该检查。</li><li>ACTRL_DS_DELETE_TREE</li><li>ACTRL_DS_LIST_OBJECT</li><li>ACTRL_DS_CONTROL_ACCESS 仅在执行对象支持的扩展权限检查后才允许访问。该标志可以单独用于对对象执行所有扩展权限检查,也可以与特定扩展权限的标识符组合以仅执行该检查。</li></ul></li></ul></li><li><p>SID 安全描述符</p><table><thead><tr><th>Function</th><th>Description</th></tr></thead><tbody><tr><td>AllocateAndInitializeSid</td><td>用指定数量的子权限分配和初始化SID。</td></tr><tr><td>ConvertSidToStringSid</td><td>将SID转换为适合于显示,存储或传输的字符串格式。</td></tr><tr><td>ConvertStringSidToSid</td><td>将字符串格式的SID转换为有效的功能性SID。</td></tr><tr><td>CopySid</td><td>将源SID复制到缓冲区。</td></tr><tr><td>EqualPrefixSid</td><td>测试两个SID前缀值是否相等。SID前缀是除最后一个子权限值以外的整个SID。</td></tr><tr><td>EqualSid</td><td>测试两个SID是否相等。它们必须完全匹配才能被视为相等。</td></tr><tr><td>FreeSid</td><td>使用AllocateAndInitializeSid函数释放先前分配的SID 。</td></tr><tr><td>GetLengthSid</td><td>检索SID的长度。</td></tr><tr><td>GetSidIdentifierAuthority</td><td>检索指向SID标识符权限的指针。</td></tr><tr><td>GetSidLengthRequired</td><td>检索存储具有指定数量的子权限的SID所需的缓冲区大小。</td></tr><tr><td>GetSidSubAuthority</td><td>检索指向SID中指定的子权限的指针。</td></tr><tr><td>GetSidSubAuthorityCount</td><td>检索SID中的子机构数。</td></tr><tr><td>InitialSid</td><td>初始化SID结构。</td></tr><tr><td>IsValidSid</td><td>通过验证修订号是否在已知范围内以及子授权机构的数量小于最大值来测试SID的有效性。</td></tr><tr><td>LookupAccountName</td><td>检索与指定帐户名对应的SID。</td></tr><tr><td>LookupAccountSid</td><td>检索与指定的SID对应的帐户名。</td></tr></tbody></table><p> SID 结构</p><pre><code> S - R - I - S S-1-5-32-544 本地Administrators组 1 修订级别 5 SECURITY_NT_AUTHORITY 32 SECURITY_BUILTIN_DOMAIN_RID 544 DOMAIN_ALIAS_RID_ADMINS</code></pre></li></ol><h3 id="Access-Control-Editor"><a href="#Access-Control-Editor" class="headerlink" title="Access Control Editor"></a>Access Control Editor</h3><h3 id="Client-Server-Access-Control"><a href="#Client-Server-Access-Control" class="headerlink" title="Client/Server Access Control"></a>Client/Server Access Control</h3><h3 id="Access-Control-for-Application-Resources"><a href="#Access-Control-for-Application-Resources" class="headerlink" title="Access Control for Application Resources"></a>Access Control for Application Resources</h3><h3 id="Mandatory-Integrity-Control"><a href="#Mandatory-Integrity-Control" class="headerlink" title="Mandatory Integrity Control"></a>Mandatory Integrity Control</h3><p>强制完整性控制</p><p>Windows Vista定义了四个完整性级别:低(SID: S-1-16-4096)、中(SID: S-1-16-8192)、高(SID: S-1-16-12288)、系统(SID: S-1-16-16384)。默认情况下,普通用户启动的进程将获得中完整性级别,而提升的进程则获得高完整性级别。通过引入完整性级别,强制完整性控制可以分类隔离程序,使得沙箱化潜在危险程序(如进行网络通信的程序)成为可能。低完整性进程所拥有的访问权限少于那些拥有更高完整性级别的进程。</p><h3 id="User-Account-Control"><a href="#User-Account-Control" class="headerlink" title="User Account Control"></a>User Account Control</h3>]]></content>
<summary type="html">
<h2 id="Antimalware-Scan-Interface-AMSI"><a href="#Antimalware-Scan-Interface-AMSI" class="headerlink" title="Antimalware Scan Interface AMS
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="windows安全" scheme="https://969975553.gitee.io/tags/windows%E5%AE%89%E5%85%A8/"/>
</entry>
<entry>
<title>权限相关的英文</title>
<link href="https://969975553.gitee.io/2020/05/07/%E8%8B%B1%E6%96%87%E7%9A%84%E6%9D%83%E9%99%90/"/>
<id>https://969975553.gitee.io/2020/05/07/%E8%8B%B1%E6%96%87%E7%9A%84%E6%9D%83%E9%99%90/</id>
<published>2020-05-07T08:36:01.000Z</published>
<updated>2020-05-07T09:14:44.802Z</updated>
<content type="html"><![CDATA[<h2 id="权限"><a href="#权限" class="headerlink" title="权限"></a>权限</h2><ol><li><p>permission 许可证、许可、允许</p><p> v.</p><ul><li>ask (for) permission 请求许可</li><li>get permission 得到许可</li><li>permission to leave 准许离开</li><li>need permission 需要获准</li><li>obtain permission 取得许可</li><li>receive permission 收到许可</li><li>request permission 要求给予许可</li><li>seek permission 寻求获准</li></ul><p> adj.</p><ul><li>special permission 特别许可</li><li>written permission 书面许可</li></ul><p> it.</p><ul><li>用户权限 动作和客体 加入文档的权限 相近的Access Control</li></ul></li><li><p>Access</p><p> U 道路</p><ul><li>access to the building</li></ul><p> it.</p><ul><li>memory access 内存访问 存取访问</li></ul></li><li><p>Privilege 特权</p><p> adj.</p><ul><li>special Privilege 特权</li></ul><p> n.</p><ul><li>power and privilege 权势</li><li>executive privilege 行政官员豁免权</li></ul><p> it.</p><ul><li>小张拥有这个权力操作文档</li></ul></li><li><p>Authorization 授权</p></li><li><p>Authentication 验证权限、身份验证、鉴定、认证<br> it.</p><ul><li>数据库授权</li><li>加密认证</li><li>服务器登录认证</li></ul></li><li><p>rights 权力、正当的权力、公正<br> n.</p><ul><li>human rights 人权</li><li>visitation rights 探视权</li></ul></li><li><p>token 代币、令牌、装点门面、证明、标记</p><p> As a token of goodwill, 为了证明我的好意</p><p> it.</p><ul><li>access token 访问令牌</li><li>tokens to the parser 解释器的标记</li></ul></li><li><p>certificate 毕业证书、证书、文凭</p></li><li><p>identifier 标识符</p><p> it.</p><ul><li>scope of the identifier 作用域标识</li><li>Another common mistake is to confuse a prefix with an identifier. 另一种常见的错误是混淆了前缀和标识符</li></ul></li></ol>]]></content>
<summary type="html">
<h2 id="权限"><a href="#权限" class="headerlink" title="权限"></a>权限</h2><ol>
<li><p>permission 许可证、许可、允许</p>
<p> v.</p>
<ul>
<li>ask (for) permi
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="语言" scheme="https://969975553.gitee.io/tags/%E8%AF%AD%E8%A8%80/"/>
</entry>
<entry>
<title>windows安全对象结构体</title>
<link href="https://969975553.gitee.io/2020/05/06/windows%E5%AE%89%E5%85%A8%E5%AF%B9%E8%B1%A1%E7%BB%93%E6%9E%84%E4%BD%93/"/>
<id>https://969975553.gitee.io/2020/05/06/windows%E5%AE%89%E5%85%A8%E5%AF%B9%E8%B1%A1%E7%BB%93%E6%9E%84%E4%BD%93/</id>
<published>2020-05-06T06:26:07.000Z</published>
<updated>2021-03-11T08:38:50.172Z</updated>
<content type="html"><![CDATA[<h2 id="MSDN"><a href="#MSDN" class="headerlink" title="MSDN"></a>MSDN</h2><p><a href="https://docs.microsoft.com/windows/win32/secauthz/authorization-portal">https://docs.microsoft.com/windows/win32/secauthz/authorization-portal</a></p><ol><li><p>SID_NAME_USE SID类型</p> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">enum</span> _<span class="title">SID_NAME_USE</span> {</span></span><br><span class="line"> SidTypeUser = <span class="number">1</span>,</span><br><span class="line"> SidTypeGroup,</span><br><span class="line"> SidTypeDomain,</span><br><span class="line"> SidTypeAlias,</span><br><span class="line"> SidTypeWellKnownGroup,</span><br><span class="line"> SidTypeDeletedAccount,</span><br><span class="line"> SidTypeInvalid,</span><br><span class="line"> SidTypeUnknown,</span><br><span class="line"> SidTypeComputer,</span><br><span class="line"> SidTypeLabel</span><br><span class="line">} SID_NAME_USE, *PSID_NAME_USE;</span><br></pre></td></tr></table></figure></li><li><p>SECURITY_DESCRIPTOR</p> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> _<span class="title">SECURITY_DESCRIPTOR</span> {</span></span><br><span class="line">BYTE Revision;</span><br><span class="line">BYTE Sbz1;</span><br><span class="line">SECURITY_DESCRIPTOR_CONTROL Control;</span><br><span class="line">PSID Owner;</span><br><span class="line">PSID Group;</span><br><span class="line">PACL Sacl;</span><br><span class="line">PACL Dacl;</span><br><span class="line">} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;</span><br></pre></td></tr></table></figure></li><li><p>ACL</p><ul><li>DACL is a pointer to a discretionary ACL</li><li>SACL Sacl - is a pointer to a system ACL</li></ul> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> _<span class="title">ACL</span> {</span></span><br><span class="line"> BYTE AclRevision;</span><br><span class="line"> BYTE Sbz1;</span><br><span class="line"> WORD AclSize;</span><br><span class="line"> WORD AceCount;</span><br><span class="line"> WORD Sbz2;</span><br><span class="line">} ACL;</span><br><span class="line"><span class="keyword">typedef</span> ACL *PACL;</span><br></pre></td></tr></table></figure></li><li><p>ACL_SIZE_INFORMATION</p> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> _<span class="title">ACL_SIZE_INFORMATION</span> {</span></span><br><span class="line"> DWORD AceCount;</span><br><span class="line"> DWORD AclBytesInUse;</span><br><span class="line"> DWORD AclBytesFree;</span><br><span class="line">} ACL_SIZE_INFORMATION;</span><br><span class="line"><span class="keyword">typedef</span> ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION;</span><br></pre></td></tr></table></figure></li><li><p>LookupAccountName</p> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">SID_NAME_USE snuType;</span><br><span class="line">LPVOID pUserSID = <span class="literal">NULL</span>; <span class="comment">// 都置为0</span></span><br><span class="line">DWORD cbUserSID = <span class="number">0</span>;</span><br><span class="line">LPVOID szDomain = <span class="literal">NULL</span>;</span><br><span class="line">DWORD cbUserSID = <span class="number">0</span>;</span><br></pre></td></tr></table></figure></li><li><p>AddAce AddAccessAllowedAceEx</p> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="comment">//https://docs.microsoft.com/windows/win32/api/securitybaseapi/nf-securitybaseapi-addaccessallowedaceex</span></span><br><span class="line"><span class="function">BOOL <span class="title">AddAccessAllowedAceEx</span><span class="params">(</span></span></span><br><span class="line"><span class="function"><span class="params">PACL pAcl,</span></span></span><br><span class="line"><span class="function"><span class="params">DWORD dwAceRevision,</span></span></span><br><span class="line"><span class="function"><span class="params">DWORD AceFlags,</span></span></span><br><span class="line"><span class="function"><span class="params">DWORD AccessMask,</span></span></span><br><span class="line"><span class="function"><span class="params">PSID pSid</span></span></span><br><span class="line"><span class="function"><span class="params">)</span></span>;</span><br></pre></td></tr></table></figure></li><li><p>SID</p> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">ifndef</span> SID_DEFINED</span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">define</span> SID_DEFINED</span></span><br><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> _<span class="title">SID</span> {</span></span><br><span class="line">BYTE Revision;</span><br><span class="line">BYTE SubAuthorityCount;</span><br><span class="line">SID_IDENTIFIER_AUTHORITY IdentifierAuthority;</span><br><span class="line"><span class="meta">#<span class="meta-keyword">ifdef</span> MIDL_PASS</span></span><br><span class="line">[size_is(SubAuthorityCount)] DWORD SubAuthority[*];</span><br><span class="line"><span class="meta">#<span class="meta-keyword">else</span> <span class="comment">// MIDL_PASS</span></span></span><br><span class="line">DWORD SubAuthority[ANYSIZE_ARRAY];</span><br><span class="line"><span class="meta">#<span class="meta-keyword">endif</span> <span class="comment">// MIDL_PASS</span></span></span><br><span class="line">} SID, *PISID;</span><br><span class="line"><span class="meta">#<span class="meta-keyword">endif</span></span></span><br></pre></td></tr></table></figure></li><li><p>EXPLICIT_ACCESS</p> <figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> _<span class="title">EXPLICIT_ACCESS_W</span></span></span><br><span class="line"><span class="class">{</span></span><br><span class="line"> DWORD grfAccessPermissions;</span><br><span class="line"> ACCESS_MODE grfAccessMode;</span><br><span class="line"> DWORD grfInheritance;</span><br><span class="line"> TRUSTEE_W Trustee;</span><br><span class="line">} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW;</span><br><span class="line"></span><br><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">enum</span> _<span class="title">ACCESS_MODE</span></span></span><br><span class="line"><span class="class">{</span></span><br><span class="line"> NOT_USED_ACCESS = <span class="number">0</span>,</span><br><span class="line"> GRANT_ACCESS,</span><br><span class="line"> SET_ACCESS,</span><br><span class="line"> DENY_ACCESS,</span><br><span class="line"> REVOKE_ACCESS,</span><br><span class="line"> SET_AUDIT_SUCCESS,</span><br><span class="line"> SET_AUDIT_FAILURE</span><br><span class="line">} ACCESS_MODE;</span><br><span class="line"></span><br><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> _<span class="title">TRUSTEE_W</span></span></span><br><span class="line"><span class="class">{</span></span><br><span class="line"> <span class="class"><span class="keyword">struct</span> _<span class="title">TRUSTEE_W</span> *<span class="title">pMultipleTrustee</span>;</span></span><br><span class="line"> MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;</span><br><span class="line"> TRUSTEE_FORM TrusteeForm;</span><br><span class="line"> TRUSTEE_TYPE TrusteeType;</span><br><span class="line"><span class="meta">#<span class="meta-keyword">ifdef</span> __midl</span></span><br><span class="line"> [switch_is(TrusteeForm)]</span><br><span class="line"> <span class="class"><span class="keyword">union</span></span></span><br><span class="line"><span class="class"> {</span></span><br><span class="line"> [<span class="keyword">case</span>(TRUSTEE_IS_NAME)]</span><br><span class="line"> LPWSTR ptstrName;</span><br><span class="line"> [<span class="keyword">case</span>(TRUSTEE_IS_SID)]</span><br><span class="line"> SID *pSid;</span><br><span class="line"> [<span class="keyword">case</span>(TRUSTEE_IS_OBJECTS_AND_SID)]</span><br><span class="line"> OBJECTS_AND_SID *pObjectsAndSid;</span><br><span class="line"> [<span class="keyword">case</span>(TRUSTEE_IS_OBJECTS_AND_NAME)]</span><br><span class="line"> OBJECTS_AND_NAME_W *pObjectsAndName;</span><br><span class="line"> };</span><br><span class="line"><span class="meta">#<span class="meta-keyword">else</span></span></span><br><span class="line"> LPWSTR ptstrName;</span><br><span class="line"><span class="meta">#<span class="meta-keyword">endif</span></span></span><br><span class="line">} TRUSTEE_W, *PTRUSTEE_W, TRUSTEEW, *PTRUSTEEW;</span><br></pre></td></tr></table></figure></li></ol>]]></content>
<summary type="html">
<h2 id="MSDN"><a href="#MSDN" class="headerlink" title="MSDN"></a>MSDN</h2><p><a href="https://docs.microsoft.com/windows/win32/secauthz/aut
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="windows安全" scheme="https://969975553.gitee.io/tags/windows%E5%AE%89%E5%85%A8/"/>
</entry>
<entry>
<title>google构建</title>
<link href="https://969975553.gitee.io/2020/04/26/GN%E6%9E%84%E5%BB%BA%E7%B3%BB%E7%BB%9F/"/>
<id>https://969975553.gitee.io/2020/04/26/GN%E6%9E%84%E5%BB%BA%E7%B3%BB%E7%BB%9F/</id>
<published>2020-04-26T08:39:26.000Z</published>
<updated>2021-01-05T08:51:34.543Z</updated>
<content type="html"><![CDATA[<h2 id="GN构建系统"><a href="#GN构建系统" class="headerlink" title="GN构建系统"></a>GN构建系统</h2><h2 id="下载depot-tools并设置环境变量"><a href="#下载depot-tools并设置环境变量" class="headerlink" title="下载depot_tools并设置环境变量"></a>下载depot_tools并设置环境变量</h2><ol><li><p>git clone <a href="https://chromium.googlesource.com/chromium/tools/depot_tools.git">https://chromium.googlesource.com/chromium/tools/depot_tools.git</a> (需要翻墙)</p></li><li><p>设置环境变量 将depot_tools的路径添加到环境变量(建议放置第一条,在python环境变量之前)</p></li><li><p>禁止工具升级 ==设置环境变量== DEPOT_TOOLS_UPDATE=0 或者 ==删除.git目录==</p></li></ol><p>工具库包含</p><ul><li><input checked="" disabled="" type="checkbox"> gclient 支持svn和git</li><li><input checked="" disabled="" type="checkbox"> gcl 预提交脚本for svn python的<a href="https://github.com/rietveld-codereview/rietveld">codeview</a></li><li><input checked="" disabled="" type="checkbox"> git-cl 预提交脚本for git python的<a href="https://github.com/rietveld-codereview/rietveld">codeview</a></li><li><input checked="" disabled="" type="checkbox"> svn</li><li><input checked="" disabled="" type="checkbox"> drover 快速还原svn提交</li><li><input checked="" disabled="" type="checkbox"> cpplint.py 静态检查工具</li><li><input checked="" disabled="" type="checkbox"> pylint python静态检查工具</li><li><input checked="" disabled="" type="checkbox"> presubmit_support.py脚本</li><li><input checked="" disabled="" type="checkbox"> repo: The repo tool.</li><li><input checked="" disabled="" type="checkbox"> zsh-goodies 补全</li><li><input checked="" disabled="" type="checkbox"> wtf</li><li><input checked="" disabled="" type="checkbox"> weekly</li><li><input checked="" disabled="" type="checkbox"> git-gs</li></ul><h2 id="GN-exe的生成"><a href="#GN-exe的生成" class="headerlink" title="GN exe的生成"></a>GN exe的生成</h2><p>GN是一个元构建系统,可为Ninja生成构建文件。</p><ol><li><p>git clone <a href="https://gn.googlesource.com/gn">https://gn.googlesource.com/gn</a></p></li><li><p>python build/gen.py</p></li><li><p>ninja -C out(环境要有ninja)</p></li></ol><h2 id="GN使用命令"><a href="#GN使用命令" class="headerlink" title="GN使用命令"></a>GN使用命令</h2><ol><li><p>生成构建目录 gn gen out/windows_x86_debug</p></li><li><p>添加构建参数 gn args out/windows_x86_debug</p></li></ol><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// gn args --list out/windows_x86_debug</span></span><br><span class="line">is_debug = <span class="literal">true</span></span><br><span class="line">is_official_build=<span class="literal">false</span></span><br><span class="line">is_component_build = <span class="literal">false</span></span><br><span class="line">target_cpu=<span class="string">"x64"</span></span><br><span class="line">symbol_level = <span class="number">0</span></span><br><span class="line">is_win_fastlink = <span class="literal">true</span> <span class="comment">//不生成pdb</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 交叉编译 https://gn.googlesource.com/gn/+/master/docs/cross_compiles.md</span></span><br><span class="line">target_os = <span class="string">"chromeos"</span></span><br><span class="line">target_os = <span class="string">"android"</span></span><br><span class="line"></span><br><span class="line">target_cpu = <span class="string">"arm"</span></span><br><span class="line">target_cpu = <span class="string">"x86"</span></span><br><span class="line">target_cpu = <span class="string">"x64"</span></span><br></pre></td></tr></table></figure><h2 id="编写GN文件"><a href="#编写GN文件" class="headerlink" title="编写GN文件"></a>编写GN文件</h2><h3 id="1-根目录下创建-gn文件"><a href="#1-根目录下创建-gn文件" class="headerlink" title="1. 根目录下创建.gn文件"></a>1. 根目录下创建.gn文件</h3><p>一般build目录下都有一些默认的配置 tool_chain</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># The location of the build configuration file.</span></span><br><span class="line">buildconfig = <span class="string">"//build/BUILDCONFIG.gn"</span></span><br></pre></td></tr></table></figure><h3 id="2-创建BUILD-gn"><a href="#2-创建BUILD-gn" class="headerlink" title="2. 创建BUILD.gn"></a>2. 创建BUILD.gn</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">## 可执行程序</span></span><br><span class="line">executable(<span class="string">"hello"</span>) {</span><br><span class="line"> sources = [ <span class="string">"hello.cc"</span> ]</span><br><span class="line"></span><br><span class="line"> deps = [</span><br><span class="line"> <span class="string">":hello_shared"</span>,</span><br><span class="line"> <span class="string">":hello_static"</span>,</span><br><span class="line"> ]</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="comment">## dll</span></span><br><span class="line">shared_library(<span class="string">"hello_shared"</span>) {</span><br><span class="line"> sources = [</span><br><span class="line"> <span class="string">"hello_shared.cc"</span>,</span><br><span class="line"> <span class="string">"hello_shared.h"</span>,</span><br><span class="line"> ]</span><br><span class="line"></span><br><span class="line"> defines = [ <span class="string">"HELLO_SHARED_IMPLEMENTATION"</span> ]</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="comment">## lib</span></span><br><span class="line">static_library(<span class="string">"hello_static"</span>) {</span><br><span class="line"> sources = [</span><br><span class="line"> <span class="string">"hello_static.cc"</span>,</span><br><span class="line"> <span class="string">"hello_static.h"</span>,</span><br><span class="line"> ]</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h2 id="ninja"><a href="#ninja" class="headerlink" title="ninja"></a>ninja</h2><ol><li><p>git clone <a href="git://github.com/ninja-build/ninja.git">git://github.com/ninja-build/ninja.git</a></p></li><li><p>cmake 编译或者<a href="https://github.com/ninja-build/ninja/releases">https://github.com/ninja-build/ninja/releases</a>下载binary</p></li></ol><h2 id="编译问题"><a href="#编译问题" class="headerlink" title="编译问题"></a>编译问题</h2><p>warning: A compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.<br>wrote build.ninja.</p><p>安装re2c <a href="http://re2c.org/">http://re2c.org/</a></p><h2 id="build-config"><a href="#build-config" class="headerlink" title="build config"></a>build config</h2><h3 id="win"><a href="#win" class="headerlink" title="win"></a>win</h3><ol><li>Microsoft Message Compiler (mc.exe)</li><li></li></ol>]]></content>
<summary type="html">
<h2 id="GN构建系统"><a href="#GN构建系统" class="headerlink" title="GN构建系统"></a>GN构建系统</h2><h2 id="下载depot-tools并设置环境变量"><a href="#下载depot-tools并设置环
</summary>
<category term="技术" scheme="https://969975553.gitee.io/categories/%E6%8A%80%E6%9C%AF/"/>
<category term="编译" scheme="https://969975553.gitee.io/tags/%E7%BC%96%E8%AF%91/"/>
<category term="构建" scheme="https://969975553.gitee.io/tags/%E6%9E%84%E5%BB%BA/"/>
<category term="gn" scheme="https://969975553.gitee.io/tags/gn/"/>
<category term="ninja" scheme="https://969975553.gitee.io/tags/ninja/"/>
<category term="depot_tools" scheme="https://969975553.gitee.io/tags/depot-tools/"/>
</entry>
</feed>