-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
751 lines (499 loc) · 74.8 KB
/
index.html
File metadata and controls
751 lines (499 loc) · 74.8 KB
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
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hexo</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="Zeyes, 凌点时代, 博客">
<meta property="og:type" content="website">
<meta property="og:title" content="Hexo">
<meta property="og:url" content="http://yoursite.com/index.html">
<meta property="og:site_name" content="Hexo">
<meta property="og:locale" content="default">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Hexo">
<link rel="alternate" href="/atom.xml" title="Hexo" type="application/atom+xml">
<link rel="icon" href="/favicon.png">
<link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<div id="container">
<div id="wrap">
<header id="header">
<div id="banner"></div>
<div id="header-outer" class="outer">
<div id="header-title" class="inner">
<h1 id="logo-wrap">
<a href="/" id="logo">Hexo</a>
</h1>
</div>
<div id="header-inner" class="inner">
<nav id="main-nav">
<a id="main-nav-toggle" class="nav-icon"></a>
<a class="main-nav-link" href="/">Home</a>
<a class="main-nav-link" href="/archives">Archives</a>
</nav>
<nav id="sub-nav">
<a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="RSS Feed"></a>
<a id="nav-search-btn" class="nav-icon" title="Search"></a>
</nav>
<div id="search-form-wrap">
<form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit"></button><input type="hidden" name="sitesearch" value="http://yoursite.com"></form>
</div>
</div>
</div>
</header>
<div class="outer">
<section id="main">
<article id="pages-2017-11-18-解决用Eclipse-EE写JSP代码时,自动括号补全问题" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/11/18/2017-11-18-解决用Eclipse-EE写JSP代码时,自动括号补全问题/" class="article-date">
<time datetime="2017-11-18T06:43:00.000Z" itemprop="datePublished">2017-11-18</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/学习/">学习</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/11/18/2017-11-18-解决用Eclipse-EE写JSP代码时,自动括号补全问题/">解决用Eclipse EE写JSP代码时,自动括号补全问题</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>这个问题其实是烦恼了挺久的,就我本人而言,通常不用括号补全,我觉得手打比较完整,在学JSP以前,用Eclipse虽然他带括号补全,但是也不影响手打,比如打括号时,不会出现三个括号。<br>而JSP的Editor就比较烦人了。比如打<%%>会出现<%%>>。</p>
<p>找了许久,解决办法如下Window->Preferences->Web->JSP Files->Editor->Typing<br><img src="/images/2017-11-18/2017-11-18_144337.png" alt=""></p>
<p>然后把Automatically close下面的勾全部取消,然后Apply。</p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/11/18/2017-11-18-解决用Eclipse-EE写JSP代码时,自动括号补全问题/" data-id="cjglvpdi8002dokftixnlnqc4" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Java/">Java</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/日常配置/">日常配置</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2017-09-17-Ubuntu-16-04-菜单栏消失的解决办法" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/09/17/2017-09-17-Ubuntu-16-04-菜单栏消失的解决办法/" class="article-date">
<time datetime="2017-09-17T01:33:00.000Z" itemprop="datePublished">2017-09-17</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/Linux/">Linux</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/09/17/2017-09-17-Ubuntu-16-04-菜单栏消失的解决办法/">Ubuntu 16.04 菜单栏消失的解决办法</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>今天无缘无故,ubuntu的菜单栏就消失了。找了以下终于找到了解决办法。</p>
<p>打开命令行窗口,输入以下语句:<br><figure class="highlight bash"><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">dconf reset -f /org/compiz/</span><br><span class="line">setsid unity</span><br></pre></td></tr></table></figure></p>
<p>然后,菜单栏就回来了。</p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/09/17/2017-09-17-Ubuntu-16-04-菜单栏消失的解决办法/" data-id="cjglvpdi40026okft6j2pfb09" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Ubuntu/">Ubuntu</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/折腾/">折腾</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2017-09-16-ubuntu中Codeblock运行中文乱码解决方法" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/09/16/2017-09-16-ubuntu中Codeblock运行中文乱码解决方法/" class="article-date">
<time datetime="2017-09-16T11:09:00.000Z" itemprop="datePublished">2017-09-16</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/Linux/">Linux</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/09/16/2017-09-16-ubuntu中Codeblock运行中文乱码解决方法/">ubuntu中Codeblock运行中文乱码解决方法</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="中文乱码解决方案"><a href="#中文乱码解决方案" class="headerlink" title="中文乱码解决方案"></a>中文乱码解决方案</h3><p>“设置”菜单下选“环境设置”:</p>
<p>“常规设置”,最下面”启动控制台程序的终端”,选择gnome-terminal -t $TITLE -x<br>原来是xterm -T $TITLE –e</p>
<p>原地址:<br><a href="http://www.cnblogs.com/ttrrpp/p/6909784.html" target="_blank" rel="noopener">Ubuntu安装codeblocks 汉化 中文乱码 颜色主题 中文显示不全</a></p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/09/16/2017-09-16-ubuntu中Codeblock运行中文乱码解决方法/" data-id="cjglvpdi60029okften0jctmq" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Ubuntu/">Ubuntu</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/日常配置/">日常配置</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2017-09-15-解决Ubuntu“下载额外数据文件失败-ttf-mscorefonts-installer”的问题" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/09/15/2017-09-15-解决Ubuntu“下载额外数据文件失败-ttf-mscorefonts-installer”的问题/" class="article-date">
<time datetime="2017-09-15T05:37:00.000Z" itemprop="datePublished">2017-09-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/Linux/">Linux</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/09/15/2017-09-15-解决Ubuntu“下载额外数据文件失败-ttf-mscorefonts-installer”的问题/">解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>最近开机总是遇到一段提示,内容大概是这样:</p>
<blockquote>
<p>下载额外数据文件失败<br>以下软件包要求安装后下载附加数据,但其数据无法下载或无法处理。<br>ttf-mscorefonts-installer<br>稍后系统将自动重试下载,您也可以手工立即重试。执行此命令需要有活动的网络连接。</p>
</blockquote>
<p>开始也挺烦恼,总是解决不掉。</p>
<p>后台发现<code>/usr/share/package-data-downloads</code>有一个文件<code>ttf-mscorefonts-installer</code>,用<code>gedit</code>打开,有一大串地址。<br>其实解决办法是,手动把这些地址链接的文件下载下来,然后放到一个文件夹中。</p>
<p>如果懒得下载,也可以使用已下载好的文件,百度网盘: <a href="https://pan.baidu.com/s/1jIcfEMa" target="_blank" rel="noopener">https://pan.baidu.com/s/1jIcfEMa</a> 密码: rbeh</p>
<p>手动在命令行执行<code>sudo dpkg-reconfigure ttf-mscorefonts-installer</code>这条语句手动指定文件夹的位置,重新配置下。</p>
<p>注意:在命令行不支持用鼠标点击,如果移动请使用tab键。</p>
<p>然后输入以下命令<br><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><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="built_in">cd</span> /usr/share/package-data-downloads/</span><br><span class="line">sudo rm ttf-mscorefonts-installer</span><br><span class="line"><span class="built_in">cd</span> /var/lib/update-notifier/package-data-downloads/</span><br><span class="line">sudo rm ttf-mscorefonts-installer</span><br><span class="line"><span class="built_in">cd</span> /var/lib/update-notifier/user.d/</span><br><span class="line">sudo rm data-downloads-failed</span><br></pre></td></tr></table></figure></p>
<p>重启后应该就没有烦人的提示了。</p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/09/15/2017-09-15-解决Ubuntu“下载额外数据文件失败-ttf-mscorefonts-installer”的问题/" data-id="cjglvpdi10021okft8kiko8zz" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Ubuntu/">Ubuntu</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/折腾/">折腾</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2017-06-15-Eclipse-Neon配置Mysql" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/06/15/2017-06-15-Eclipse-Neon配置Mysql/" class="article-date">
<time datetime="2017-06-15T08:13:00.000Z" itemprop="datePublished">2017-06-15</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/学习/">学习</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/06/15/2017-06-15-Eclipse-Neon配置Mysql/">Eclipse Neon配置Mysql</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="1-要下载的资料"><a href="#1-要下载的资料" class="headerlink" title="1# 要下载的资料"></a>1# 要下载的资料</h3><p>MySQL Connector/J 6.0<br>下载网址:<a href="https://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-6.0.6.zip" target="_blank" rel="noopener">https://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-6.0.6.zip</a><br>查看最新版本下载链接:<a href="https://dev.mysql.com/downloads/connector/j/" target="_blank" rel="noopener">https://dev.mysql.com/downloads/connector/j/</a></p>
<h3 id="2-解压文件"><a href="#2-解压文件" class="headerlink" title="2# 解压文件"></a>2# 解压文件</h3><p>解压mysql-connector-java-6.0.6.zip,可得如下文件:<br><img src="/images/2017-06-15/63546416.png" alt=""></p>
<h3 id="3-放置文件"><a href="#3-放置文件" class="headerlink" title="3# 放置文件"></a>3# 放置文件</h3><p>假如在D盘创建一个文件夹java,然后在java文件夹里面创建jdbc-drivers文件夹,将mysql-connector-java-6.0.6-bin.jar放入此文件夹。<br>可以得到此文件的路径,记住这个文件的位置,下面还需要用到。<br>D:\java\jdbc-drivers\mysql-connector-java-6.0.6-bin.jar<br>其实文件路径是随意的,放在一个可以找得到的文件夹就可以了。</p>
<h3 id="4-在Eclipse上配置mysql库文件"><a href="#4-在Eclipse上配置mysql库文件" class="headerlink" title="4# 在Eclipse上配置mysql库文件"></a>4# 在Eclipse上配置mysql库文件</h3><p>打开Eclipse在菜单里找到Window–>Preferences打开<br><img src="/images/2017-06-15/456465464.png" alt=""></p>
<p>在设置界面里面找到Java–>Build Path–>User Libraries,打开如图所示:<br><img src="/images/2017-06-15/654646416.png" alt=""></p>
<p>点击New新建,在输入框输入jdbc,然后下面的System library勾上。<br><img src="/images/2017-06-15/41654164164.png" alt=""></p>
<h3 id="5-导入jar包"><a href="#5-导入jar包" class="headerlink" title="5# 导入jar包"></a>5# 导入jar包</h3><p>接下类点击Add External JARs,将刚才的mysql-connector-java-6.0.6-bin.jar这个文件选中,然后最后OK保存设置就可以了。<br><img src="/images/2017-06-15/QQ截图20170615160713.png" alt=""></p>
<p>6# 在Eclipse项目上使用Mysql库文件<br>在项目上右键弹出菜单选择Build Path然后选择Add Libraries<br><img src="/images/2017-06-15/54654641648.png" alt=""></p>
<p>然后在弹出的选项中选则,User Libraries,接着勾选jdbc这个库,最后点Finsh完成就可以成功在项目中使用mysql进行连接数据库了。<br><img src="/images/2017-06-15/QQ截图20170615160845.png" alt=""></p>
<h3 id="7-测试运行"><a href="#7-测试运行" class="headerlink" title="7# 测试运行"></a>7# 测试运行</h3><p><img src="/images/2017-06-15/4998749464697.png" alt=""></p>
<p>注意:6.0版本的MySQL Connector/J 6.0与之前的版本有很大区别,不兼容。</p>
<p>可以查看官方文档:<a href="https://dev.mysql.com/doc/connector-j/6.0/en/" target="_blank" rel="noopener">https://dev.mysql.com/doc/connector-j/6.0/en/</a></p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/06/15/2017-06-15-Eclipse-Neon配置Mysql/" data-id="cjglvpdhz001yokft7swwu3zn" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Java/">Java</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/日常配置/">日常配置</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2017-06-07-CodeBlocks-16-01-wxWidgets-3-03配置" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/06/07/2017-06-07-CodeBlocks-16-01-wxWidgets-3-03配置/" class="article-date">
<time datetime="2017-06-06T17:35:00.000Z" itemprop="datePublished">2017-06-07</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/算法学习/">算法学习</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/06/07/2017-06-07-CodeBlocks-16-01-wxWidgets-3-03配置/">CodeBlocks 16.01+wxWidgets 3.03配置</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="1-下载CodeBlocks-16-01和wxWidgets-3-0-3"><a href="#1-下载CodeBlocks-16-01和wxWidgets-3-0-3" class="headerlink" title="1# 下载CodeBlocks 16.01和wxWidgets 3.0.3"></a>1# 下载CodeBlocks 16.01和wxWidgets 3.0.3</h3><p>CodeBlocks 16.01 下载地址:<a href="http://www.codeblocks.org/downloads/" target="_blank" rel="noopener">http://www.codeblocks.org/downloads/</a><br>wxWidgets 3.03 下载地址:<a href="https://www.wxwidgets.org/downloads/" target="_blank" rel="noopener">https://www.wxwidgets.org/downloads/</a></p>
<p>最新的wxWidgets 3.1.0 但是这里面没有使用这个版本的原因是CodeBlocks 16.01是2016.01发布的,而wxWidgets 3.1.0是2016.02发布的,这个版本的CodeBlocks没有集成3.10的配置。如果非要用也行,要改项目工程文件的配置。</p>
<p>下载后得到两个文件:</p>
<ul>
<li>codeblocks-16.01mingw-setup.exe</li>
<li>wxWidgets-3.0.3.zip</li>
</ul>
<h3 id="2-安装CodeBlocks-16-01和解压wxWidgets-3-0-3"><a href="#2-安装CodeBlocks-16-01和解压wxWidgets-3-0-3" class="headerlink" title="2# 安装CodeBlocks 16.01和解压wxWidgets 3.0.3"></a>2# 安装CodeBlocks 16.01和解压wxWidgets 3.0.3</h3><p>将CodeBlocks安装到F:\Program Files (x86)\CodeBlocks<br>将wxWidgets解压到F:\wxWidgets-3.0.3目录下<br><em>PS:其实这个随意,只要安装到找得到的地方就好。</em></p>
<h3 id="3-设置环境变量"><a href="#3-设置环境变量" class="headerlink" title="3# 设置环境变量"></a>3# 设置环境变量</h3><p>在编译wxWidgets之前首先要设置一下MinGw环境变量,CodeBlocks 16.01中有自带gcc 4.9.2 这个版本的编译器。比如我的CodeBlocks装在F:\Program Files (x86)\CodeBlocks这个目录下,那么将<code>;F:\Program Files (x86)\CodeBlocks\MinGW\bin;</code>加入Path路径中,保存。<em>注意:环境变量每个路径以分号分隔的,如果前面路径结尾已经有了分号,那么只需要一个分号。</em></p>
<p>在命令行下输入<code>gcc –v</code>有如下信息:<br><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><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">C:\Users\Administrator>gcc -v</span><br><span class="line">Using built-in specs.</span><br><span class="line">COLLECT_GCC=gcc</span><br><span class="line">COLLECT_LTO_WRAPPER=F:/Program\ Files\ (x86)/CodeBlocks/MinGW/bin/../libexec/gcc</span><br><span class="line">/mingw32/4.9.2/lto-wrapper.exe</span><br><span class="line">Target: mingw32</span><br><span class="line">…</span><br><span class="line">Thread model: posix</span><br><span class="line">gcc version 4.9.2 (tdm-1)</span><br></pre></td></tr></table></figure></p>
<p>看最末尾那行gcc version是4.9.2那么就是成功配置了。wxWidgets对编译器的版本也有要求的,如果是新手,建议使用CodeBlocks自带的编译器。</p>
<h3 id="4-编译wxWidgets-3-0-3"><a href="#4-编译wxWidgets-3-0-3" class="headerlink" title="4# 编译wxWidgets 3.0.3"></a>4# 编译wxWidgets 3.0.3</h3><p>在命令进入wxWigets的build/msw文件夹,例如我的是F:\wxWidgets-3.0.3\build\msw这个路径<br><figure class="highlight bash"><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">F:</span><br><span class="line"><span class="built_in">cd</span> F:\wxWidgets-3.0.3\build\msw</span><br></pre></td></tr></table></figure></p>
<p>接下来就是make了。</p>
<p>编译命令如下:<br><figure class="highlight bash"><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">mingw32-make -j2 -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1</span><br><span class="line">mingw32-make -j2 -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=1 UNICODE=1</span><br></pre></td></tr></table></figure></p>
<p>这里使用开两个线程来编译,加入参数-j2,以加快速度,第一次运行会直接提示出错,再运行同样的命令一次就不会出问题了。当然如果不加-j2,也没问题,以正常的速度编译。值得一说的是,可以开两个命令行窗口同时编译,运行上面命令。比如一个窗口编译release版本,一个窗口编译debug版本。速度也能大大加快。</p>
<p>还有其他的一些参数解释如下:<br><strong>BUILD</strong><br>BUILD控制wxWidgets构建调试版本(BUILD=debug)或者是发布版本(BUILD=release)。绝大多数情况下你只需要 wxWidgets的发布版本就可以了,因为你应该不想要去调试wxWidgets自身,同时你依然可以通过链接wxWidgets的发布版本来构建你自己的程序的调试版本。</p>
<p><strong>SHARED</strong><br>SHARED控制wxWidgets是构建DLL(SHARED=1)还是静态库(SHARED=0)。利用构建的DLL,主程序构建时间较快,可执行文件更小。但是可执行文件加上wxWidgets DLL的总大小更大,但是不同的可执行文件可以使用同一个DLL。</p>
<p><strong>MONOLITHIC</strong><br>MONOLITHIC控制是构建一个单一的库(MONOLITHIC=1)还是多个组件库(MONOLITHIC=0)。使用单一构建,项目的设置 和开发会更加简单,如果你同时使用DLL构建的话,你只需要分发一个DLL文件。如果使用非单一构建(multilib),会构建出多个不同的库同时你可 以避免将整个wxWidgets的基本代码链接到主程序,就可以去掉不需要的库。同时你也必须确保你选择了正确的组件库。</p>
<p><strong>UNICODE</strong><br>UNICODE控制wxWidgets以及你的程序是否使用支持Unicode的宽字符串。</p>
<h3 id="5-配置CodeBlocks"><a href="#5-配置CodeBlocks" class="headerlink" title="5# 配置CodeBlocks"></a>5# 配置CodeBlocks</h3><p>编译好了以后还有在CodeBlocks上配置一下。<br>在<code>Settings-->Global Variable Editor上Current Variable</code>这个选项上New,输入wx。<br>然后设置下base、include和lib,例如我的wxWidgets安装位置是<code>F:\wxWidgets-3.0.3</code><br><img src="/images/2017-06-07/2017-06-06_222630.png" alt="" title="CodeBlcoks wxWidgets变量配置"></p>
<h3 id="6-进行测试"><a href="#6-进行测试" class="headerlink" title="6# 进行测试"></a>6# 进行测试</h3><p>下面是新建工程测试。<br>有一个事情是必须记住的,要记住编译时的参数。<br>上面的命令一共编译了两个版本,release和debug版,在构建项目的时候,两个都可以勾选。而且,SHARED=0代表使用静态库,Use wxWidgets DLL不勾选,MONOLITHIC=1 表示使用单一的库,wxWidgets is build as a monolithic library就要勾选,同理UNICODE=1表示支持Unicode,这样Enable unicode也要勾选。<br><img src="/images/2017-06-07/2017-06-07_005128.png" alt="" title="新建wxWidgets工程"></p>
<p><img src="/images/2017-06-07/2017-06-07_005316.png" alt="" title="设置wxWidgets工程名称和目录"></p>
<p><img src="/images/2017-06-07/2017-06-07_005403.png" alt="" title="设置作者信息"></p>
<p><img src="/images/2017-06-07/2017-06-07_005503.png" alt="" title="设置GUI类型"></p>
<p><img src="/images/2017-06-07/2017-06-07_005509.png" alt="" title="设置wx变量"></p>
<p><img src="/images/2017-06-07/2017-06-07_005519.png" alt="" title="设置编译选项,release和debug"></p>
<p><img src="/images/2017-06-07/2017-06-07_005531.png" alt="" title="设置wxWidgets编译时的一些参数"></p>
<p><img src="/images/2017-06-07/2017-06-07_005624-1024x656.png" alt="" title="测试"></p>
<h3 id="7-正常使用"><a href="#7-正常使用" class="headerlink" title="7# 正常使用"></a>7# 正常使用</h3><p>接下来可以随意使用了。</p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/06/07/2017-06-07-CodeBlocks-16-01-wxWidgets-3-03配置/" data-id="cjglvpdhw001tokft6ej1v27b" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/C语言/">C语言</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/算法/">算法</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2017-06-04-Ubuntu-14-04-16-04-开启root用户登录-自动开启小键盘" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/06/04/2017-06-04-Ubuntu-14-04-16-04-开启root用户登录-自动开启小键盘/" class="article-date">
<time datetime="2017-06-04T04:06:00.000Z" itemprop="datePublished">2017-06-04</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/Linux/">Linux</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/06/04/2017-06-04-Ubuntu-14-04-16-04-开启root用户登录-自动开启小键盘/">Ubuntu 14.04/16.04 开启root用户登录/自动开启小键盘</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="1-给root用户设置密码"><a href="#1-给root用户设置密码" class="headerlink" title="1# 给root用户设置密码"></a>1# 给root用户设置密码</h3><figure class="highlight bash"><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">sudo passwd root</span><br><span class="line">sudo apt-get install numlockx</span><br></pre></td></tr></table></figure>
<h3 id="2-使用命令行登录root"><a href="#2-使用命令行登录root" class="headerlink" title="2# 使用命令行登录root"></a>2# 使用命令行登录root</h3><figure class="highlight bash"><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">su -</span><br><span class="line">nautilus</span><br></pre></td></tr></table></figure>
<p>这样弹出来的文件管理器就有root权限了(当然只是临时的),为了方便改文件</p>
<h3 id="3-改文件"><a href="#3-改文件" class="headerlink" title="3# 改文件"></a>3# 改文件</h3><p>在<code>/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf</code>文件增加两行<br><figure class="highlight bash"><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">greeter-show-manual-login=<span class="literal">true</span></span><br><span class="line">allow-guest=<span class="literal">false</span></span><br></pre></td></tr></table></figure></p>
<p>在<code>/usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf</code>文件增加一行<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">greeter-setup-script=/usr/bin/numlockx on</span><br></pre></td></tr></table></figure></p>
<h3 id="4-重启"><a href="#4-重启" class="headerlink" title="4# 重启"></a>4# 重启</h3><p>重启完以后就可以禁用guest账户和使用root登录了</p>
<h3 id="5-可能出现的问题"><a href="#5-可能出现的问题" class="headerlink" title="5# 可能出现的问题"></a>5# 可能出现的问题</h3><p>使用root用户登录可能会出现Error found when loading /root/.profile stdin: is not a tty这样的错误</p>
<p>解决办法如下:<br>修改<code>/root/.profile</code>文件,在文件管理器中设置 编辑–首选项 勾选 显示隐藏和备份文件 就可以查看这个文件,用vi修改也行。把<code>mesg n</code>进行注释,增加一行<code>tty -s && mesg n</code>保存,注销后重新登录问题解决。</p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/06/04/2017-06-04-Ubuntu-14-04-16-04-开启root用户登录-自动开启小键盘/" data-id="cjglvpdhq001lokft4z39hhzy" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Ubuntu/">Ubuntu</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/折腾/">折腾</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2017-04-22-使用OpenVPN对校园网内网穿透" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2017/04/22/2017-04-22-使用OpenVPN对校园网内网穿透/" class="article-date">
<time datetime="2017-04-22T13:54:00.000Z" itemprop="datePublished">2017-04-22</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/Linux/">Linux</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2017/04/22/2017-04-22-使用OpenVPN对校园网内网穿透/">使用OpenVPN对校园网内网穿透</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<blockquote>
<p>目标: 搭建完成之后,可以在服务器(外网)上直接输入校园网(内网)地址进行访问。<br><img src="/images/2017-04-22/OpenVPN.png" alt=""></p>
</blockquote>
<h3 id="00-前言"><a href="#00-前言" class="headerlink" title="#00 前言"></a>#00 前言</h3><p>最近对穿透学校的内网有需求,于是决定搭建环境。<br>网上的教程大多都是客户端访问服务器的内网,<br>但这个教程是,穿透客户端所在内网,由服务器访问客户端的内网。</p>
<p><strong>服务器IP</strong>:x.x.x.x<br><strong>客户端IP</strong>:192.168.1.1 所在网段 192.168.1.0/24<br><strong>学校内网网段</strong>:10.20.208.0/24</p>
<p>路由器通过学校内网IP上网,此处省去路由端802.1X的认证过程,假设直接就能通过学校的认证并且获取到一个ip。</p>
<p>在路由器上是可以直接访问10.20.208.0/24网段的,但是10.20.208.x是一个内网的地址,服务器所在环境是外网无法访问。</p>
<p><em>如果是对内网的某一个某个网站进行穿透,建议使用ngrok</em>,这里是对整个网段的穿透。</p>
<h3 id="01-OpenVPN-Server和Client所用的环境"><a href="#01-OpenVPN-Server和Client所用的环境" class="headerlink" title="#01 OpenVPN Server和Client所用的环境"></a>#01 OpenVPN Server和Client所用的环境</h3><ul>
<li>OpenVpn Sever使用的服务器(CentOS 7.0)</li>
<li>OpenVpn Client放在Openwrt(Pandorabox 16.10 stable, Openwrt 17.01)路由器上运行</li>
</ul>
<h3 id="02-安装OpenVPN-服务器端"><a href="#02-安装OpenVPN-服务器端" class="headerlink" title="#02 安装OpenVPN(服务器端)"></a>#02 安装OpenVPN(服务器端)</h3><p>登录服务器端,输入以下命令进行openvpn的安装<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yum install -y openvpn</span><br></pre></td></tr></table></figure></p>
<p>或者是到openvpn的官方网站下载源码 <a href="https://openvpn.net/index.php/open-source/downloads.html" target="_blank" rel="noopener">https://openvpn.net/index.php/open-source/downloads.html</a><br><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://swupdate.openvpn.org/community/releases/openvpn-2.4.1.tar.gz</span><br></pre></td></tr></table></figure></p>
<p>然后按照下面的命令进行安装<br><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><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">tar -zxf openvpn-2.4.1.tar.gz</span><br><span class="line"><span class="built_in">cd</span> openvpn-2.4.1</span><br><span class="line">./configure</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure></p>
<p>安装完成openvpn之后,输入以下命令就可看到版本信息<br><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><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">openvpn --version</span><br><span class="line">OpenVPN 2.4.1 x86_64-redhat-linux-gnu [Fedora EPEL patched] [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Apr 3 2017</span><br><span class="line">library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06</span><br><span class="line">Originally developed by James Yonan</span><br><span class="line">Copyright (C) 2002-2017 OpenVPN Technologies, Inc. <sales@openvpn.net></span><br><span class="line">......</span><br></pre></td></tr></table></figure></p>
<h3 id="03-下载easy-rsa"><a href="#03-下载easy-rsa" class="headerlink" title="#03 下载easy-rsa"></a>#03 下载easy-rsa</h3><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><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">wget -c https://github.com/OpenVPN/easy-rsa/archive/master.zip</span><br><span class="line">unzip master.zip</span><br><span class="line">mv easy-rsa-master easy-rsa</span><br><span class="line">cp -rf easy-rsa /etc/openvpn</span><br><span class="line"><span class="built_in">cd</span> /etc/openvpn/easy-rsa</span><br><span class="line"><span class="built_in">cd</span> /etc/openvpn/easy-rsa/easyrsa3</span><br><span class="line">mv vars.example vars</span><br></pre></td></tr></table></figure>
<p>解除注释之后,修改如下内容(填写自己的信息):<br><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><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">vi vars</span><br><span class="line">set_var EASYRSA_REQ_COUNTRY <span class="string">"CN"</span></span><br><span class="line">set_var EASYRSA_REQ_PROVINCE <span class="string">"Guangdong"</span></span><br><span class="line">set_var EASYRSA_REQ_CITY <span class="string">"Dongguan"</span></span><br><span class="line">set_var EASYRSA_REQ_ORG <span class="string">"DotTimes Co"</span></span><br><span class="line">set_var EASYRSA_REQ_EMAIL <span class="string">"xxx@xxxx.com"</span></span><br><span class="line">set_var EASYRSA_REQ_OU <span class="string">"Zeyes"</span></span><br></pre></td></tr></table></figure></p>
<p>修改完之后,按下ESC,然后输入<code>:wq</code>保存</p>
<h3 id="04-配置证书文件"><a href="#04-配置证书文件" class="headerlink" title="#04 配置证书文件"></a>#04 配置证书文件</h3><h4 id="1-初始化配置"><a href="#1-初始化配置" class="headerlink" title="1. 初始化配置"></a>1. 初始化配置</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./easyrsa init-pki</span><br></pre></td></tr></table></figure>
<p>如果成功的话,会在当前目录下创建pki/{reqs,private}目录,用于保存证书文件。</p>
<h4 id="2-创建根证书"><a href="#2-创建根证书" class="headerlink" title="2. 创建根证书"></a>2. 创建根证书</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./easyrsa build-ca</span><br></pre></td></tr></table></figure>
<p>创建过程中需要输入根证书的密码以及<code>Common Name</code>。如果创建成功,则会在<code>pki/private/</code>目录下创建<code>ca.key</code>私钥文件以及<code>pki/</code>目录下创建<code>ca.crt</code>证书文件。</p>
<h4 id="3-创建服务器证书"><a href="#3-创建服务器证书" class="headerlink" title="3. 创建服务器证书"></a>3. 创建服务器证书</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./easyrsa build-server-full server nopass</span><br></pre></td></tr></table></figure>
<p>创建过程和根证书创建类似,需要输入证书的密码以及上一个步骤创建根证书的密码。<br>如果创建成功,则会在<code>pki/private</code>目录创建<code>server.key</code>私钥文件。在<code>pki/issued</code>目录创建<code>server.crt</code>证书文件。</p>
<h4 id="4-创建dh证书"><a href="#4-创建dh证书" class="headerlink" title="4. 创建dh证书"></a>4. 创建dh证书</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./easyrsa gen-dh</span><br></pre></td></tr></table></figure>
<p>DH parameters of size 2048 created at /usr/local/easy-rsa-master/easyrsa3/pki/dh.pem</p>
<h4 id="5-创建客户端证书"><a href="#5-创建客户端证书" class="headerlink" title="5. 创建客户端证书"></a>5. 创建客户端证书</h4><p>./easyrsa build-client-full openwrt nopass # openwrt是用户名,也可以输入其他的, nopass表示不需要密码<br>创建过程要输入ca证书的密码(第2步的密码)</p>
<h4 id="6-server端的文件,复制到-etc-openvpn-下"><a href="#6-server端的文件,复制到-etc-openvpn-下" class="headerlink" title="6. server端的文件,复制到/etc/openvpn/下"></a>6. server端的文件,复制到/etc/openvpn/下</h4><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><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /etc/openvpn/</span><br><span class="line">cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt .</span><br><span class="line">cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt .</span><br><span class="line">cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key .</span><br><span class="line">cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem ./dh2048.pem</span><br></pre></td></tr></table></figure>
<h4 id="7-client端的文件-然后下载-放到一个可以下载的地方,注意权限"><a href="#7-client端的文件-然后下载-放到一个可以下载的地方,注意权限" class="headerlink" title="7. client端的文件, 然后下载 (放到一个可以下载的地方,注意权限)"></a>7. client端的文件, 然后下载 (放到一个可以下载的地方,注意权限)</h4><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><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /data/wwwroot/default/</span><br><span class="line">mkdir client</span><br><span class="line">cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt ./client/</span><br><span class="line">cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/openwrt.crt ./client/</span><br><span class="line">cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/openwrt.key ./client/</span><br><span class="line">chown -R www.www client</span><br><span class="line">chmod 644 ./client/*</span><br></pre></td></tr></table></figure>
<p>我这里是放在服务器网站目录下,如果有其他选择,可以选择其他方便进行下载的地方</p>
<h3 id="05-配置OpenVPN-Server"><a href="#05-配置OpenVPN-Server" class="headerlink" title="#05 配置OpenVPN Server"></a>#05 配置OpenVPN Server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /etc/openvpn</span><br></pre></td></tr></table></figure>
<h4 id="1-将server配置模板复制到-etc-openvpn下"><a href="#1-将server配置模板复制到-etc-openvpn下" class="headerlink" title="1. 将server配置模板复制到/etc/openvpn下"></a>1. 将server配置模板复制到/etc/openvpn下</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cp /usr/share/doc/openvpn-2.4.1/sample/sample-config-files/server.conf .</span><br></pre></td></tr></table></figure>
<h4 id="2-编辑server-conf"><a href="#2-编辑server-conf" class="headerlink" title="2. 编辑server.conf"></a>2. 编辑server.conf</h4><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><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">vi server.conf</span><br><span class="line"></span><br><span class="line"><span class="built_in">local</span> xxx.xxx.xxx.xxx <span class="comment"># 这里填服务器的外网ip</span></span><br><span class="line">port 1194</span><br><span class="line">proto udp</span><br><span class="line">dev tun</span><br><span class="line">ca ca.crt</span><br><span class="line">cert server.crt</span><br><span class="line">key server.key</span><br><span class="line">dh dh2048.pem</span><br><span class="line">server 10.8.0.0 255.255.255.0</span><br><span class="line">ifconfig-pool-persist ipp.txt</span><br><span class="line">client-config-dir ccd</span><br><span class="line">route 10.20.208.0 255.255.255.0 <span class="comment"># 学校内网网段</span></span><br><span class="line">route 192.168.1.0 255.255.255.0 <span class="comment"># 路由器网段</span></span><br><span class="line">client-to-client</span><br><span class="line">keepalive 10 120</span><br><span class="line">;tls-auth ta.key 0</span><br><span class="line">cipher AES-256-CBC <span class="comment"># 加密方式</span></span><br><span class="line">comp-lzo</span><br><span class="line">;user nobody</span><br><span class="line">;group nobody</span><br><span class="line">persist-key</span><br><span class="line">persist-tun</span><br><span class="line">status openvpn-status.log</span><br><span class="line">verb 3</span><br><span class="line">explicit-exit-notify 1</span><br></pre></td></tr></table></figure>
<h3 id="06-配置ccd文件夹"><a href="#06-配置ccd文件夹" class="headerlink" title="#06 配置ccd文件夹"></a>#06 配置ccd文件夹</h3><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><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /etc/openvpn</span><br><span class="line">mkdir ccd</span><br><span class="line"><span class="built_in">cd</span> ccd</span><br><span class="line">vi openwrt <span class="comment"># 填你的生成的客户端证书名</span></span><br><span class="line">iroute 10.20.208.0 255.255.255.0 <span class="comment"># 学校内网网段</span></span><br><span class="line">iroute 192.168.1.0 255.255.255.0 <span class="comment"># 路由器网段</span></span><br><span class="line">ifconfig-push 10.8.0.2 10.8.0.1</span><br></pre></td></tr></table></figure>
<h3 id="07-iptables-设置(根据实际情况)"><a href="#07-iptables-设置(根据实际情况)" class="headerlink" title="#07 iptables 设置(根据实际情况)"></a>#07 iptables 设置(根据实际情况)</h3><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><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></pre></td><td class="code"><pre><span class="line">yum install -y iptables-services</span><br><span class="line">systemctl <span class="built_in">enable</span> iptables</span><br><span class="line">systemctl stop firewalld</span><br><span class="line">systemctl start iptables</span><br><span class="line">iptables -L -n</span><br><span class="line">iptables -P INPUT ACCEPT</span><br><span class="line">iptables -F</span><br><span class="line">iptables -X</span><br><span class="line">iptables -A INPUT -i lo -j ACCEPT</span><br><span class="line">iptables -A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</span><br><span class="line">iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT</span><br><span class="line">iptables -A INPUT -p tcp --dport 22 -j ACCEPT</span><br><span class="line">iptables -A INPUT -p tcp --dport 21 -j ACCEPT</span><br><span class="line">iptables -A INPUT -p tcp --dport 443 -j ACCEPT</span><br><span class="line">iptables -A INPUT -p tcp --dport 80 -j ACCEPT</span><br><span class="line">iptables -A INPUT -p tcp --dport 3306 -j ACCEPT</span><br><span class="line">iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tun+ -j MASQUERADE</span><br><span class="line">iptables -t nat -A POSTROUTING -s 10.20.208.0/24 -o tun+ -j MASQUERADE</span><br><span class="line">iptables -A FORWARD -d 10.20.208.0/24 -o tun+ -j ACCEPT</span><br><span class="line">service iptables save</span><br><span class="line">service iptables restart</span><br></pre></td></tr></table></figure>
<h3 id="08-服务器设置"><a href="#08-服务器设置" class="headerlink" title="#08 服务器设置"></a>#08 服务器设置</h3><h4 id="1-设置允许转发"><a href="#1-设置允许转发" class="headerlink" title="1. 设置允许转发"></a>1. 设置允许转发</h4><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">vi /etc/sysctl.conf</span><br><span class="line">net.ipv4.ip_forward = 1</span><br><span class="line">sysctl -p <span class="comment"># 立即生效</span></span><br></pre></td></tr></table></figure>
<h4 id="2-设置openvpn开机启动"><a href="#2-设置openvpn开机启动" class="headerlink" title="2. 设置openvpn开机启动"></a>2. 设置openvpn开机启动</h4><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">systemctl -f <span class="built_in">enable</span> openvpn@server.service</span><br><span class="line">systemctl start openvpn@server.service</span><br><span class="line">systemctl restart openvpn@server.service</span><br></pre></td></tr></table></figure>
<h3 id="09-下载证书"><a href="#09-下载证书" class="headerlink" title="#09 下载证书"></a>#09 下载证书</h3><p>总共有三个文件</p>
<ul>
<li>ca.crt</li>
<li>openwrt.crt</li>
<li>openwrt.key</li>
</ul>
<h3 id="10-客户端设置-Pandorabox-Openwrt-17-01"><a href="#10-客户端设置-Pandorabox-Openwrt-17-01" class="headerlink" title="#10 客户端设置(Pandorabox, Openwrt 17.01)"></a>#10 客户端设置(Pandorabox, Openwrt 17.01)</h3><h4 id="1-安装openvpn以及luci-web配置界面还有中文"><a href="#1-安装openvpn以及luci-web配置界面还有中文" class="headerlink" title="1. 安装openvpn以及luci web配置界面还有中文"></a>1. 安装openvpn以及luci web配置界面还有中文</h4><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><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">opkg update</span><br><span class="line">opkg install openvpn-openssl</span><br><span class="line">opkg install luci-app-openvpn</span><br><span class="line">opkg install luci-i18n-openvpn-zh-cn</span><br></pre></td></tr></table></figure>
<h4 id="2-设置允许转发"><a href="#2-设置允许转发" class="headerlink" title="2. 设置允许转发"></a>2. 设置允许转发</h4><p>默认情况下,防火墙是禁止转发的。<br>所以登录路由器的web设置界面luci, 找到网络-防火墙-一般设置,<br>可以看到转发是拒绝的,把转发设置成接受,然后点击保存并应用。</p>
<h3 id="11-测试OpenVPN-客户端-能否正常运行(此步可以省略)"><a href="#11-测试OpenVPN-客户端-能否正常运行(此步可以省略)" class="headerlink" title="#11 测试OpenVPN(客户端)能否正常运行(此步可以省略)"></a>#11 测试OpenVPN(客户端)能否正常运行(此步可以省略)</h3><h4 id="1-预先编辑好文件client-conf,然后传到-tmp目录,文件内容如下:"><a href="#1-预先编辑好文件client-conf,然后传到-tmp目录,文件内容如下:" class="headerlink" title="1. 预先编辑好文件client.conf,然后传到/tmp目录,文件内容如下:"></a>1. 预先编辑好文件client.conf,然后传到/tmp目录,文件内容如下:</h4><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><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">client</span><br><span class="line">;dev tap</span><br><span class="line">dev tun</span><br><span class="line">;dev-node MyTap</span><br><span class="line">;proto tcp</span><br><span class="line">proto udp</span><br><span class="line">remote x.x.x.x 1194 <span class="comment"># 这里修改为你的服务器ip</span></span><br><span class="line">;remote my-server-2 1194</span><br><span class="line">;remote-random</span><br><span class="line">resolv-retry infinite</span><br><span class="line">nobind</span><br><span class="line">;user nobody</span><br><span class="line">;group nobody</span><br><span class="line">persist-key</span><br><span class="line">persist-tun</span><br><span class="line">;http-proxy-retry <span class="comment"># retry on connection failures</span></span><br><span class="line">;http-proxy [proxy server] [proxy port <span class="comment">#]</span></span><br><span class="line">;mute-replay-warnings</span><br><span class="line">ca ca.crt</span><br><span class="line">cert openwrt.crt</span><br><span class="line">key openwrt.key</span><br><span class="line">remote-cert-tls server</span><br><span class="line">;tls-auth ta.key 1</span><br><span class="line">cipher AES-256-CBC</span><br><span class="line">comp-lzo</span><br><span class="line">verb 3</span><br><span class="line">;mute 20</span><br></pre></td></tr></table></figure>
<h4 id="2-测试运行,如果不成功会有提示"><a href="#2-测试运行,如果不成功会有提示" class="headerlink" title="2. 测试运行,如果不成功会有提示"></a>2. 测试运行,如果不成功会有提示</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openvpn --config client.conf</span><br></pre></td></tr></table></figure>
<h4 id="3-在服务器端输入以下命令测试"><a href="#3-在服务器端输入以下命令测试" class="headerlink" title="3. 在服务器端输入以下命令测试"></a>3. 在服务器端输入以下命令测试</h4><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">ping 10.8.0.2 -c 4</span><br><span class="line">ping 192.168.1.1 -c 4</span><br><span class="line">ping 10.20.208.12 -c 4</span><br></pre></td></tr></table></figure>
<p>如果能够正常运行,说明客户端和配置都没有问题</p>
<h3 id="11-配置OpenVPN-Client"><a href="#11-配置OpenVPN-Client" class="headerlink" title="#11 配置OpenVPN Client"></a>#11 配置OpenVPN Client</h3><h4 id="1-使用scp,把证书传到-etc-luci-uploads-文件夹-没有就创建-传好后目录内容如下:"><a href="#1-使用scp,把证书传到-etc-luci-uploads-文件夹-没有就创建-传好后目录内容如下:" class="headerlink" title="1. 使用scp,把证书传到/etc/luci-uploads/文件夹(没有就创建), 传好后目录内容如下:"></a>1. 使用scp,把证书传到/etc/luci-uploads/文件夹(没有就创建), 传好后目录内容如下:</h4><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">/etc/luci-uploads/ca.crt</span><br><span class="line">/etc/luci-uploads/openwrt.crt</span><br><span class="line">/etc/luci-uploads/openwrt.key</span><br></pre></td></tr></table></figure>
<h4 id="2-登录ssh,编辑openvpn配置文件"><a href="#2-登录ssh,编辑openvpn配置文件" class="headerlink" title="2. 登录ssh,编辑openvpn配置文件"></a>2. 登录ssh,编辑openvpn配置文件</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /etc/config/openvpn</span><br></pre></td></tr></table></figure>
<p>把以下内容添加到最后面,并保存<br><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><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></pre></td><td class="code"><pre><span class="line">config openvpn <span class="string">'openwrt'</span></span><br><span class="line"> option enabled <span class="string">'1'</span></span><br><span class="line"> option <span class="built_in">float</span> <span class="string">'1'</span></span><br><span class="line"> option client <span class="string">'1'</span></span><br><span class="line"> option nobind <span class="string">'1'</span></span><br><span class="line"> option comp_lzo <span class="string">'yes'</span></span><br><span class="line"> option reneg_sec <span class="string">'0'</span></span><br><span class="line"> option dev <span class="string">'tun'</span></span><br><span class="line"> option verb <span class="string">'3'</span></span><br><span class="line"> option persist_tun <span class="string">'1'</span></span><br><span class="line"> option persist_key <span class="string">'1'</span></span><br><span class="line"> option remote_cert_tls <span class="string">'server'</span></span><br><span class="line"> list remote <span class="string">'x.x.x.x 1194'</span> <span class="comment"># 此处要设置成服务器的地址</span></span><br><span class="line"> option ca <span class="string">'/etc/luci-uploads/ca.crt'</span></span><br><span class="line"> option cert <span class="string">'/etc/luci-uploads/openwrt.crt'</span></span><br><span class="line"> option key <span class="string">'/etc/luci-uploads/openwrt.key'</span></span><br><span class="line"> option resolv_retry <span class="string">'infinite'</span></span><br><span class="line"> option keepalive <span class="string">'10 120'</span></span><br><span class="line"> option <span class="built_in">log</span> <span class="string">'/tmp/openvpn.log'</span></span><br><span class="line"> option log_append <span class="string">'/tmp/openvpn.log'</span></span><br><span class="line"> option cipher <span class="string">'AES-256-CBC'</span></span><br></pre></td></tr></table></figure></p>
<h3 id="12-启动Openvpn-Client"><a href="#12-启动Openvpn-Client" class="headerlink" title="#12 启动Openvpn Client"></a>#12 启动Openvpn Client</h3><p>登录openwrt的Web设置界面,找到openvpn,点击启用,然后再点start就可以了。<br>如果有配置问题,可以输入命令查看日志<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cat /tmp/openvpn.log</span><br></pre></td></tr></table></figure></p>
<p>到此,服务端和客户端都已经搭建完成。如果有需要可以再测试一下连通。</p>
<h3 id="13-参考文章"><a href="#13-参考文章" class="headerlink" title="#13 参考文章"></a>#13 参考文章</h3><p>ECS服务器OPENVPN搭建,方便管理所有内网服务器<br>阿里云CentOS服务器上搭建openvpn<br>通过OpenWrt路由器和OpenVPN实现两地局域网互联</p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2017/04/22/2017-04-22-使用OpenVPN对校园网内网穿透/" data-id="cjglvpdhu001qokftn0ha6png" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/OpenWrt/">OpenWrt</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/日常配置/">日常配置</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2016-12-14-wxWidgets学习-wxStaticText类" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/12/14/2016-12-14-wxWidgets学习-wxStaticText类/" class="article-date">
<time datetime="2016-12-14T15:59:00.000Z" itemprop="datePublished">2016-12-14</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/框架学习/">框架学习</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/12/14/2016-12-14-wxWidgets学习-wxStaticText类/">wxWidgets学习 - wxStaticText类</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h2 id="wxStaticText类"><a href="#wxStaticText类" class="headerlink" title="wxStaticText类"></a>wxStaticText类</h2><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string"><wx/stattext.h></span></span></span><br></pre></td></tr></table></figure>
<p>静态文本控件,显示一行或者多行只读文本。<br>wxStaticText控件支持三种典型的文本对齐。</p>
<h3 id="样式-Styles"><a href="#样式-Styles" class="headerlink" title="样式(Styles)"></a>样式(Styles)</h3><p>这个类支持以下样式:</p>
<ul>
<li><strong>wxALIGN_LEFT</strong>: 文本向左对齐。</li>
<li><strong>wxALIGN_RIGHT</strong>: 文本向右对齐。</li>
<li><strong>wxALIGN_CENTRE_HORIZONTAL</strong>: 文本水平居中。</li>
<li><strong>wxST_NO_AUTORESIZE</strong>: 默认情况下,当调用SetLabel()时,控件将调整到适合放下文本的大小。如果给出这个样式标志,控件就不会改变它的大小(这个样式对于具有wxALIGN_RIGHT或wxALIGN_CENTRE_HORIZONTAL样式的控件特别有用,因为否则在调用SetLabel()之后它们将不再有意义了。</li>
<li><strong>wxST_ELLIPSIZE_START</strong>: 如果标签文本宽度超过控件宽度,则用省略号替换标签的开头部分;此参数调用wxControl::Ellipsize。</li>
<li><strong>wxST_ELLIPSIZE_MIDDLE</strong>: 如果标签文本宽度超过控件宽度,则用省略号替换标签的中间部分;此参数调用wxControl::Ellipsize。</li>
<li><strong>wxST_ELLIPSIZE_END</strong>: 如果标签文本宽度超过控件宽度,则用省略号替换标签的末尾部分;此参数调用wxControl::Ellipsize。</li>
</ul>
<h3 id="公开成员函数(Public-Member-Functions"><a href="#公开成员函数(Public-Member-Functions" class="headerlink" title="公开成员函数(Public Member Functions)"></a>公开成员函数(Public Member Functions)</h3><p>wxStaticText()<br>默认构造函数</p>
<p>bool Create (wxWindow *parent, wxWindowID id, const wxString &label, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxStaticTextNameStr)<br>构造函数,创建和显示文本控件。</p>
<p>bool Create (wxWindow *parent, wxWindowID id, const wxString &label, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxStaticTextNameStr)<br>生成功能,用于两步骤构建。</p>
<p>bool IsEllipsized () const<br>如果此控件的窗口样式包含wxST_ELLIPSIZE_START,wxST_ELLIPSIZE_MIDDLE或wxST_ELLIPSIZE_END样式之一,则返回true。</p>
<p>void Wrap (int width)<br>这个函数折叠控件标签内容,以使其每条线最多宽度为像素宽(如果可能的话,这些线在字边界处断开,因此如果单词太长,则可能不是这样)。</p>
<h3 id="Example"><a href="#Example" class="headerlink" title="Example"></a>Example</h3><figure class="highlight cpp"><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></pre></td><td class="code"><pre><span class="line"><span class="comment">// 两步创建模式</span></span><br><span class="line">wxStaticText* StaticText1 = <span class="keyword">new</span> wxStaticText();</span><br><span class="line">StaticText1->Create(<span class="keyword">this</span>, STATIC_TEXT_1, <span class="string">"这是一个测试"</span>, wxDefaultPosition, wxDefaultSize);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 单步步创建模式</span></span><br><span class="line">wxStaticText* StaticText2 = <span class="keyword">new</span> wxStaticText(<span class="keyword">this</span>, STATIC_TEXT_2, <span class="string">"test"</span>, wxDefaultPosition, wxDefaultSize);</span><br><span class="line"></span><br><span class="line">StaticText1->SetLabel(<span class="string">"Abc-test"</span>); <span class="comment">// 设置标签</span></span><br><span class="line">wxString str = StaticText1->GetLabelText(); <span class="comment">// 获取标签内容</span></span><br><span class="line">StaticText1->SetForegroundColour(*wxRED); <span class="comment">// 设置文本颜色</span></span><br><span class="line">StaticText1->SetBackgroundColour(*wxWHITE); <span class="comment">// 设置背景颜色</span></span><br><span class="line">wxSize tsize = StaticText1->GetSizeFromTextSize(<span class="number">100</span>, <span class="number">50</span>); <span class="comment">// 获取文本最佳大小</span></span><br><span class="line">StaticText2->SetLabelText(str);</span><br><span class="line">StaticText2->SetSize(tsize); <span class="comment">// 设置文本框大小</span></span><br></pre></td></tr></table></figure>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2016/12/14/2016-12-14-wxWidgets学习-wxStaticText类/" data-id="cjglvpdhp001iokft6np38x1a" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/wxWidgets/">wxWidgets</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/学习/">学习</a></li></ul>
</footer>
</div>
</article>
<article id="pages-2016-10-14-Ubuntu-16-04-安装CodeBlocks" class="article article-type-pages" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/10/14/2016-10-14-Ubuntu-16-04-安装CodeBlocks/" class="article-date">
<time datetime="2016-10-14T15:46:00.000Z" itemprop="datePublished">2016-10-14</time>
</a>
<div class="article-category">
<a class="article-category-link" href="/categories/Linux/">Linux</a>
</div>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/10/14/2016-10-14-Ubuntu-16-04-安装CodeBlocks/">Ubuntu 16.04 安装CodeBlocks</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>CodeBlocks在Ubuntu 14.04下会出现与原生的ibus有冲突,解决的办法很简单,装fcitx就行了。安装完之后记得装拼音输入法,这个很重要。</p>
<p>在Ubuntu 16.04下就比较简单了。</p>
<p class="article-more-link">
<a href="/2016/10/14/2016-10-14-Ubuntu-16-04-安装CodeBlocks/#more">Read More</a>
</p>
</div>
<footer class="article-footer">
<a data-url="http://yoursite.com/2016/10/14/2016-10-14-Ubuntu-16-04-安装CodeBlocks/" data-id="cjglvpdhn001dokftfq63pvak" class="article-share-link">Share</a>
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Ubuntu/">Ubuntu</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/日常配置/">日常配置</a></li></ul>
</footer>
</div>
</article>
<nav id="page-nav">
<span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="page-number" href="/page/3/">3</a><a class="extend next" rel="next" href="/page/2/">Next »</a>
</nav>
</section>
<aside id="sidebar">
<div class="widget-wrap">
<h3 class="widget-title">Categories</h3>
<div class="widget">
<ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/Linux/">Linux</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/学习/">学习</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/心情随笔/">心情随笔</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/框架学习/">框架学习</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/算法学习/">算法学习</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/转载/">转载</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/软件作品/">软件作品</a></li></ul>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Tags</h3>
<div class="widget">
<ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/C语言/">C语言</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Java/">Java</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/OJ/">OJ</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/OpenWrt/">OpenWrt</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Ubuntu/">Ubuntu</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/wxWidgets/">wxWidgets</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/学习/">学习</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/折腾/">折腾</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/日常配置/">日常配置</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/泽爷工作室/">泽爷工作室</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/算法/">算法</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/随笔/">随笔</a></li></ul>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Tag Cloud</h3>
<div class="widget tagcloud">
<a href="/tags/C语言/" style="font-size: 20px;">C语言</a> <a href="/tags/Java/" style="font-size: 11.67px;">Java</a> <a href="/tags/OJ/" style="font-size: 15px;">OJ</a> <a href="/tags/OpenWrt/" style="font-size: 10px;">OpenWrt</a> <a href="/tags/Ubuntu/" style="font-size: 16.67px;">Ubuntu</a> <a href="/tags/wxWidgets/" style="font-size: 10px;">wxWidgets</a> <a href="/tags/学习/" style="font-size: 10px;">学习</a> <a href="/tags/折腾/" style="font-size: 13.33px;">折腾</a> <a href="/tags/日常配置/" style="font-size: 16.67px;">日常配置</a> <a href="/tags/泽爷工作室/" style="font-size: 10px;">泽爷工作室</a> <a href="/tags/算法/" style="font-size: 18.33px;">算法</a> <a href="/tags/随笔/" style="font-size: 10px;">随笔</a>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Archives</h3>
<div class="widget">
<ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2017/11/">November 2017</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2017/09/">September 2017</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2017/06/">June 2017</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2017/04/">April 2017</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/12/">December 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/10/">October 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/09/">September 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/07/">July 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/06/">June 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/02/">February 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/01/">January 2014</a></li></ul>
</div>
</div>
<div class="widget-wrap">
<h3 class="widget-title">Recent Posts</h3>
<div class="widget">
<ul>
<li>
<a href="/2017/11/18/2017-11-18-解决用Eclipse-EE写JSP代码时,自动括号补全问题/">解决用Eclipse EE写JSP代码时,自动括号补全问题</a>
</li>
<li>
<a href="/2017/09/17/2017-09-17-Ubuntu-16-04-菜单栏消失的解决办法/">Ubuntu 16.04 菜单栏消失的解决办法</a>
</li>
<li>
<a href="/2017/09/16/2017-09-16-ubuntu中Codeblock运行中文乱码解决方法/">ubuntu中Codeblock运行中文乱码解决方法</a>
</li>
<li>
<a href="/2017/09/15/2017-09-15-解决Ubuntu“下载额外数据文件失败-ttf-mscorefonts-installer”的问题/">解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题</a>
</li>
<li>
<a href="/2017/06/15/2017-06-15-Eclipse-Neon配置Mysql/">Eclipse Neon配置Mysql</a>
</li>
</ul>
</div>
</div>
</aside>
</div>
<footer id="footer">
<div class="outer">
<div id="footer-info" class="inner">
© 2018 John Doe<br>
Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
</div>
</div>
</footer>
</div>
<nav id="mobile-nav">
<a href="/" class="mobile-nav-link">Home</a>
<a href="/archives" class="mobile-nav-link">Archives</a>
</nav>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
<script src="/fancybox/jquery.fancybox.pack.js"></script>
<script src="/js/script.js"></script>
</div>
</body>
</html>