-
Notifications
You must be signed in to change notification settings - Fork 2
/
develop.php
executable file
·607 lines (495 loc) · 30.2 KB
/
develop.php
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh" >
<!-- <!DOCTYPE html>
<html> -->
<head>
<title>17. 开发环境 - 安装和配置开发环境,如C/C++/Java/Perl/Python, Qt/Gtk+/wxWidgets, QtCreator/KDevelop/Anjuta/Code::Blocks/Eclipse/Android SDK</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="thumbnailviewer.css" type="text/css" />
<script src="thumbnailviewer.js" type="text/javascript">
/***********************************************
* Image Thumbnail Viewer Script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
</script>
</head>
<body style="background-color: rgb(185, 185, 185);">
<!-- titel start -->
<div id="frame" class="normal">
<table width="100%">
<tr>
<td valign="top" style="padding-top: 5px" width="50%">
<div class="content-text">最后更新:2016年11月27日</div>
</td>
<td align="center" width="50%" valign="top">
<!-- start of freefind search box html -->
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="font-family: Arial, Helvetica, sans-serif; font-size: 7.5pt;">
<form style="margin:0px; margin-top:0px;" action="http://search.freefind.com/find.html" method="get" accept-charset="utf-8" target="_self">
<input type="hidden" name="si" value="38829622" />
<input type="hidden" name="pid" value="r" />
<input type="hidden" name="n" value="0" />
<input type="hidden" name="_charset_" value="" />
<input type="hidden" name="bcd" value="÷" />
<input type="text" name="query" size="16" />
<input type="submit" value="search" />
<a href="http://www.freefind.com" class="content-text">by FreeFind</a>
</form>
</td>
</tr>
</table>
<!-- end of freefind search box html -->
</td>
<!--
<td align="right" width="25%" valign="top">
<div id="google_translate_element"></div><script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'zh-CN',
autoDisplay: false,
layout: google.translate.TranslateElement.InlineLayout.SIMPLE
}, 'google_translate_element');
}
</script><script type="text/javascript" src="http://translate.google.com.hk/translate_a/element.js?cb=googleTranslateElementInit"></script>
</td>
-->
</tr>
</table>
<table width="99%">
<tr>
<td width="67%" align="center"><img src="images/pics/title.png" alt="title" />
</td>
<td width="33%" align="center"><img src="images/pics/desktop-title.png" alt="?" class="pic" /></td>
</tr>
</table>
<!-- titel slut -->
<div id="topLeft">
<div class="content-title">开始</div>
<a href="index.php" class="content-text">1. 简介</a><br />
<a href="switching.php" class="content-text">2. 改用 GNU/Linux</a><br />
<a href="acquisition.php" class="content-text">3. 获取 openSUSE</a><br />
<a href="installation.php" class="content-text">4. 安装</a><br />
<div class="content-title">日常应用</div>
<a href="kde.php" class="content-text">5. KDE 桌面环境</a><br />
<a href="apps.php" class="content-text">6. 常用软件</a><br />
<a href="security.php" class="content-text">7. 安全设置</a><br />
<a href="command.php" class="content-text">8. 终端命令行</a><br />
<a href="yast.php" class="content-text">9. 管理员设置 (YaST)</a><br />
<a href="installpackage.php" class="content-text">10. 软件安装</a><br />
<a href="repositories.php" class="content-text">11. 软件源</a><br />
<a href="windows.php" class="content-text">12. 与Windows世界兼容</a><br />
<div class="content-title">设置</div>
<a href="codecs.php" class="content-text">13. 多媒体编解码器</a><br />
<a href="browserplugins.php" class="content-text">14. 浏览器插件</a><br />
<a href="3d.php" class="content-text">15. 显卡驱动</a><br />
<a href="wlan.php" class="content-text">16. 无线网</a><br />
<a href="develop.php" class="content-text">17. 开发环境</a><br />
<a href="obs.php" class="content-text">18. 软件打包服务OBS</a><br />
<a href="srvlamp.php" class="content-text">19. LAMP和LNMP</a><br />
<a href="srvother.php" class="content-text">20. 其他常见服务软件</a><br />
<div class="content-title">附录</div>
<a href="help.php" class="content-text">A: 帮助和文档</a><br />
<a href="games.php" class="content-text">B: 游戏</a><br />
<a href="under.php" class="content-text">C. 深入了解</a><br />
<a href="tweaks.php" class="content-text">D. 提示和解决方法</a><br />
<a href="history.php" class="content-text">E. 历史和背景</a><br />
<a href="contribute.php" class="content-text">F: 重在参与</a><br />
<a href="license.php" class="content-text">GNU自由文档许可证</a>
<!--
<hr align="center" width="99%" />
<center><script type="text/javascript" src="http://www.livewebstats.dk/counter.php?id=1959&mark="></script></center><br />
<br /><br />
<div align="center" class="content-title">openSUSE 13.2 coming soon:</div><br />
<center><a href="http://en.opensuse.org/Portal:13.2"><img src="http://counter.opensuse.org/13.2/small" border="0" alt="countdown" /></a></center><br />
-->
</div>
<div class="heading1">17. 开发环境</div>
本章介绍Linux下常用的开发环境,以及在openSUSE下安装和配置这些软件。由于这些软件中的每一个都有非常多的学问,这里只是简单介绍一下,开个门,让大家知道有这些东西的存在。实际学习编程语言和集成开发环境的用法需要参考各自相应的文档和教程书籍。
<br />
<ul>
<li>主要涵盖的编程语言:C/C++/Java/Perl/Python;</li>
<li>代码阅读和编辑器:Vim/Emacs/KWrite/Gedit;</li>
<li>图形界面库: Qt/Gtk+/wxWidgets;</li>
<li>集成开发环境:QtCreator/KDevelop/Anjuta/Code::Blocks/Eclipse;</li>
<li>Linux下的Android 开发环境 ;</li>
<li>版本控制软件:Git/Mercurial/CVS/SVN/Bazaar;</li>
<li>Open Build Service软件打包(18章介绍)。</li>
</ul>
<br />
<!--
<center><a href="images/screenshots/pnm.png" rel="thumbnail"><img src="images/screenshots/pnmb.png" alt="Plasmoid NetworkManagement" class="pic" /></a></center><br />
-->
<div class="heading2">17.1 代码阅读和编辑器</div>
Vim是vi的进化版,与 Emacs都是老牌的代码编辑器。这两个编辑器已经纵横了几十年了。vim本身是命令行下的编辑器,有个图形界面的包:gvim。这两个在openSUSE的发行DVD里面都有。
openSUSE默认安装了vim,但没装gvim,可以用Yast的软件管理搜索软件包的名字安装,或者执行安装命令:<br />
<div class="clroot">zypper in gvim</div><br />
Emacs默认没被安装,可以自己装:<br />
<div class="clroot">zypper in emacs emacs-info </div><br />
Kwrite是KDE桌面默认的文本和代码编辑器,KWrite还有个高级版Kate,功能更丰富。Gedit是GNOME桌面默认的文本和代码编辑器。如果是KDE桌面,需要装Gedit的话,可以执行:<br />
<div class="clroot">zypper in gedit gedit-plugins gedit-plugins-lang </div><br />
如果是GNOME桌面尝试KWrite/Kate,执行:<br />
<div class="clroot">zypper in kwrite kate</div><br />
几乎所有的Linux下的编辑器都带有各种编程语言的语法高亮显示,还有各种编辑器的插件(如gedit-plugins )。可以自己按照喜好定制编辑器。比如这个帖子:<br />
<a href="http://www.cnblogs.com/coderzh/archive/2009/12/26/emacspythonide.html" target="_blank">Emacs中打造强大的Python IDE</a> <br />
不管喜好什么编辑器和编程语言,都可以类似地定制。这就是开源的好处之一。
<br /><br />
<div class="heading2">17.2 C/C++和其他编程工具</div>
<div class="heading3">17.2.1 Linux软件包简介</div>
国内学校计算机编程的课程很多都是从C语言开始的。openSUSE默认没装gcc和g++等编译器。所以很多初次接触openSUSE的会觉得比较坑。这个容易,可以自己安装这些编译器和必要的devel包。这里先简单介绍一下,Linux软件包的名字通常有四种,以audacious播放器为例:<br />
<ul>
<li>audacious</li>
<li>audacious-devel</li>
<li>audacious-debuginfo</li>
<li>audacious-debugsource</li>
</ul>
第一个包audacious是正式的发行包,里面有可执行的二进制文件。audacious-devel是开发包,里面通常是一些头文件和库文件,如果要用到audacious自带的一些头文件、库,那就需要装第二个。后面两个是用于调试的信息和源码,这通常只有调试audacious本身或者调试一些audacious插件才要用,后面两个通常是可以忽略的。<br />
开发软件的时候,除了需要编译、链接工具外,还要一些常用库的发行包和开发包,如glibc和glibc-devel。如果系统里明明看到有如libnotify.so.4的库文件,而编译相关源代码时,却提示找不到libnotify库,那很可能是没装libnotify-devel开发包。
<br /><br />
<div class="heading3">17.2.2 C/C++编译器和开发库</div>
下面进入正题,安装gcc和g++等工具。可以在Yast的软件管理里面,搜索包的名字来安装,也可以用root命令行执行命令:<br />
<div class="clroot">zypper in gcc gcc-c++ </div><br />
GNU编译器里还有其他编程语言的,如gcc-ada,gcc-fortran ,gcc-java ,gcc-objc等等,可以根据自己需要安装。<br />
安装gcc和gcc-c++这两个软件包,软件包管理器会自动安装它们的依赖包:<br />
binutils, gcc48, gcc48-c++ , glibc-devel, libstdc++48-devel , linux-glibc-devel。<br />
第一个GNU Binutils是一些编程工具的集合,如其中的ar用于打包静态库,ld是链接器。这些是编程必备的。第二个和第三个是gcc和g++的实际的软件包,最后三个是标准C库和C++库的开发包,包含各种头文件和基础库。<br />
安装好后,就可以执行如下编译命令:<br />
<div class="cl">
gcc hello.c -o hello.out
</div>
<div class="cl">
g++ hello.cpp -o hcpp.out
</div><br />
在当前目录执行hello.out和hcpp.out,需要用 ./ 打头:<br />
<div class="cl">
./hello.out
</div>
<div class="cl">
./hcpp.out
</div><br />
<div class="heading3">17.2.3 其他常用编程工具和库</div>
除了编译器,还有其他编程或编译源码常用的工具。这里简单介绍一些:<br /><br />
<table class="tabel">
<tbody>
<tr>
<td style="width: 100px;"><b>gdb</b></td>
<td>
调试器,默认已装,可以调试各种源代码,包括C/C++/Java/Fortran/Object-C等。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>kdbg</b></td>
<td>
gdb的图形界面。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>cpp</b></td>
<td>
系统 GNU 预处理器,默认已装。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>autoconf</b></td>
<td>
自动配置源码和makefile文件的工具。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>autogen</b></td>
<td>
自动文本文件生成器,用于生成程序的文件,简化程序的管理。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>automake</b></td>
<td>
自动生成GNU风格的Makefile.in文件。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>bison</b></td>
<td>
类似Yacc的语法解析生成器。学编译原理的应该知道。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>flex</b></td>
<td>
快速词法分析生成器。学编译原理的应该知道。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>m4</b></td>
<td>
是传统Unix宏解析器的一个实现。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>make</b></td>
<td>
是编译项目代码必备的,包含make命令行工具和文档。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>cmake</b></td>
<td>
跨平台的make工具。如果是使用cmake的Qt项目,还需要软件包 automoc4。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>ccache</b></td>
<td>
快速C/C++编译器缓存,加速编译器重复编译的过程。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>checkinstall</b></td>
<td>
“make install”命令安装的跟踪器,从源码编译安装程序时常用。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>nasm</b></td>
<td>
x86汇编工具。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>boost-devel</b></td>
<td>
Boost是 跨平台的C++标准库的扩展库,
包含大量的通用功能代码。这个是其开发包。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>gsl</b></td>
<td>
GNU科学计算库,如数值计算等。其开发库是gsl-devel。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>opencv</b></td>
<td>
Intel的开源图像视频处理库。其开发库是opencv-devel。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>sqlite3-devel</b></td>
<td>
SQLite 3数据库的开发包。
</td>
</tr>
<tr>
<td style="width: 100px;"><b>zlib-devel</b></td>
<td>
压缩函数库zlib的开发包。
</td>
</tr>
<tr class="d1">
<td style="width: 100px;"><b>tcllib, tcl-devel, tclx, tix, tk, tk-devel, vtcl </b></td>
<td>
这些是Tcl/Tk编程的工具和库文件,编译源码的时候可能遇到。
</td>
</tr>
</tbody>
</table><br />
上面介绍的当然只是冰山一角,还有茫茫多的工具和开发库。实际需要哪些就装哪些,可以随时在Yast软件管理里面搜索相关的东西。命令行安装也可以,比如:<br />
<div class="clroot">zypper in kdbg autoconf autogen automake automoc4 bison flex m4 make cmake ccache checkinstall nasm gsl-devel sqlite3-devel zlib-devel</div><br />
安装时,软件包管理器通常会提示自动装些依赖库和语言包,选“确定”就行了。
<br /><br />
<div class="heading2">17.3 Java和 Eclipse集成开发环境</div>
Java毫无疑问也是非常流行的编程语言。Oracle官方有适合各种操作系统的JDK 7.0/8.0的下载(如果是要装Android开发环境,那么本节的内容可以完全跳过,后面17.8节有更简单的方法)。<br />
openSUSE自带的是开源社区维护的OpenJDK 8,默认装了OpenJDK 8,但是开发包、文档、例子没装,如果要搞Java开发,建议都装上:<br />
<div class="clroot">zypper in java-1_8_0-openjdk-devel java-1_8_0-openjdk-demo java-1_8_0-openjdk-javadoc</div><br />
由于openJDK很多东西或快捷方式装在系统路径上,所以不需要配置。直接可用来编译Java程序。<br />
<div class="cl">
javac hello.java
</div>
<div class="cl">
java hello
</div><br />
Eclipse是IBM公司引领的杰作,很多Java开发都用Eclipse集成开发环境,包括Android开发调试。Eclipse本身是一个跨平台的框架,可以通过插件形式,支持Java、C/C++、Perl、Ruby、Python、数据库等开发。Eclipse需要去官网下载:<br />
<a href="http://www.eclipse.org/downloads/" target="_blank">http://www.eclipse.org/downloads/</a> <br />
一般Java开发可以下载:Eclipse IDE for Java EE Developers ,根据自己系统选择Linux 32bit或Linux 64bit。如果用于C/C++或建模语言,可以下载其他的版本。
<br /><br />
下载后,比如64位系统的eclipse-jee-juno-SR2-linux-gtk-x86_64.tar.gz,可以直接解压缩到用户目录的bin文件夹里,比如解压到 /home/suse123/bin/ 。然后在/home/suse123/bin/eclipse/目录下面直接运行eclipse就行了。初次运行会比较慢,后面会好些。Eclipse工作空间用默认的如/home/suse123/workspace就行。
<br /><br />
<center><a href="picdev/eclipse01.png" rel="thumbnail"><img src="picdev/eclipse01s.png" alt="eclpise" class="pic" /></a></center><br />
可以在Eclipse里面新建各种项目,包括Java本身的和Web的都可以。<br /><br />
Eclipse汉化包可以通过在Eclipse里面添加源,然后自动下载中文语言插件。参看这个:<br />
<a href="http://zhidao.baidu.com/question/179934518.html" target="_blank">http://zhidao.baidu.com/question/179934518.html</a> <br />
<a href="http://www.eclipse.org/babel/downloads.php" target="_blank">http://www.eclipse.org/babel/downloads.php</a> <br />
对于最新的Juno版本,打开 Eclipse菜单Help——>Install New Software... ,
在打开的对话框里,第一行里输入:
http://download.eclipse.org/technology/babel/update-site/R0.11.0/kepler
<br />
名字取为Babel,点击OK。然后等待列出一堆语言包,选上
Babel Language Packs in Chinese(Simplified) 和
Babel Language Packs in Chinese(Traditional) ,一直点Next和Accept,
等下载安装完就搞定了。<br /><br />
<div class="heading2">17.4 Perl和Python</div>
Linux下著名的3P脚本语言就是Perl、Python、Php。Php放到19章搭建LAMP和LNMP网站介绍。openSUSE默认就安装了Perl和Python。当然,Perl和Python还有非常多的模块,数不胜数,不可能全都装上,这个可以自己看需要什么模块就装什么。<br /><br />
<center><a href="picdev/python.png" rel="thumbnail"><img src="picdev/pythons.png" alt="python" class="pic" /></a></center><br /><br />
<div class="heading2">17.5 Qt和QtCreator、KDevelop</div>
Linux下常用的C/C++语言的图形库就数Qt、Gtk+和wxWidgets了。这些都是可以跨平台的,Windows下也可以有。常用的集成开发环境,除了上面的Eclipse,还有KDevelop、QtCreator、Anjuta、Code::Blocks,Gtk+有个可视化编辑的工具glade 。<br /><br />
本节介绍Qt和QtCreator、KDevelop。Qt最初是奇趣公司开发的跨平台图形库。后来整个公司被Nokia买了,Nokia本打算利用Qt开发新的智能手机操作系统Meego,Meego不幸夭折了。Qt也被Nokia出卖给芬兰IT服务公司Digia。虽然遭遇各种变故,Qt的活力不减当年。<br /><br />
Qt是KDE桌面的基石,开发Qt程序可以用简单的文本编辑器,也可用各种复杂的集成开发环境。QtCreator算是后起之秀,现在做的界面和功能都不错,建议使用。Qt基础开发库和QtCreator安装命令:<br />
<div class="clroot">zypper in libqt5-qtbase-devel libqt5-creator libqt5-qtdoc-devel </div><br />
需要注意磁盘空间,最后一个文档包体积较大,当然所带的英文资料也够丰富。(在Yast软件管理中搜索 qt5 可以找到 qt5 相关的开发库和工具。)
<br /><br />
<!--
zypper in -t pattern devel_qt4
zypper in qt-creator libqt4-sql-mysql libqt4-sql-postgresql libqt4-sql-unixODBC
-->
<center><a href="picdev/qtcreator.png" rel="thumbnail"><img src="picdev/qtcreators.png" alt="qtcreator" class="pic" /></a></center><br /><br />
KDevelop是比较全面的集成开发环境,KDevelop支持多种不同语言,其中包括C、C++、Perl、Python、PHP、Java、Fortran、Ruby、Ada、Pascal、SQL和Bash脚本。支持各种图形库编程,支持的构建系统包括GNU(automake)、cmake、qmake和自定义项目的make(如果您想使用自己的Makefile,KDevelop不会破坏它们的)以及不需要Makefile的脚本项目。安装命令:<br />
<div class="clroot">
zypper in kdevelop5 kdevelop5-pg-qt kdevelop5-plugin-php
</div><br />
安装后运行KDevelop可能会提示Git插件被禁用,因为没装Git。Git等版本控制系统后面介绍,这里先不管。默认的项目模板不多,其他语言支持的应该需要具体配置,参看其文档和主页:<br />
<a href="http://www.kdevelop.org/" target="_blank">
http://www.kdevelop.org/ </a>
<br /><br />
<center><a href="picdev/kdevelop.png" rel="thumbnail"><img src="picdev/kdevelops.png" alt="kdevelop" class="pic" /></a></center><br /><br />
<div class="heading2">17.6 Gtk+和Anjuta</div>
Gtk+当然也是非常著名的图形库,是GNOME、Xface、LXDE等桌面环境的基石。openSUSE发行光盘里面有Gtk+ 版本2和版本3的开发包,还有许多其他Gtk+系列的库。Gtk+有一个可视化编辑工具Glade,当然更推荐GNOME桌面集成开发环境Anjuta,Anjuta还有一些插件可以自己装。Gtk+和Anjuta安装命令:<br />
<div class="clroot">zypper in gtk3-devel gtk-doc anjuta anjuta-lang intltool gtkmm3-devel gtkmm3-doc gtkmm3-tutorial gtkmm3-tutorial-lang</div><br />
安装Anjuta的时候,软件管理器会装一堆依赖包(好像少了个intltool,一定要补上),其中有subversion,就是SVN版本控制系统。<br />
这些集成开发环境都附带有版本控制系统的插件功能,比较省事。
除了支持C/C++/Gtk+,Anjuta还支持Java/JavaScript/Python等语言和WxWidgets图形库编程。<br /><br />
<center><a href="picdev/anjuta2.png" rel="thumbnail"><img src="picdev/anjuta2s.png" alt="anjuta" class="pic" /></a></center><br /><br />
<div class="heading2">17.7 wxWidgets和 Code::Blocks/CodeLite</div>
wxWidgets是模仿Windows MFC编程风格的跨平台图形库。
它执行效率比较高,在Windows下像MFC,Linux下就像Gtk+。
网页编辑工具Amaya、FTP软件FileZilla 、
集成开发环境Code::Blocks/CodeLite就是使用wxWidgets开发的。
wxWidgets的开发库需要连网下载。安装命令:<br />
<div class="clroot">
zypper in wxWidgets-devel wxWidgets-docs
</div><br />
wxWidgets的组件比较散,还有一些插件和其他的插件开发包,可以自己选择安装。
<br /><br />
Code::Blocks也是流行的开发环境,只是在openSUSE上用的比较少,在openSUSE官方发行DVD和源里面没有。CodeLite也是类似的开发环境,已经进入openSUSE官方源里。
<br /><br />
Code::Blocks需要安装libcodeblocks0和codeblocks本身,一键安装的页面:<br />
<a href="http://software.opensuse.org/package/libcodeblocks0" target="_blank">
http://software.opensuse.org/package/libcodeblocks0</a> <br />
<a href="http://software.opensuse.org/package/codeblocks" target="_blank">
http://software.opensuse.org/package/codeblocks</a> <br />
或者使用root命令行安装:<br />
<div class="clroot">zypper ar -f http://download.opensuse.org/repositories/home:/mad_soft/openSUSE_Leap_42.3/ CB</div>
<div class="clroot">
zypper in libcodeblocks0 codeblocks
</div><br />
Code::Blocks运行比较快,默认就带很多项目模板如
C/C++/Fortran、Gtk+、Qt、wxWidgets、OpenGL、Matlab
等等,这也是它在Linux和Windows下流行的一个原因。
<br /><br />
<center><a href="picdev/codeblocks.png" rel="thumbnail"><img src="picdev/codeblockss.png" alt="codeblocks" class="pic" /></a></center>
<br />
Code::Blocks官网:<br />
<a href="http://www.codeblocks.org/" target="_blank">
http://www.codeblocks.org/</a> <br />
CodeLite已经在openSUSE官方源中,可以直接用Yast软件管理搜索安装。<br />
<a href="http://www.codelite.org/" target="_blank">
http://www.codelite.org/</a> <br />
<br /><br />
<div class="heading2">17.8 Android开发环境</div>
Android是著名的开源智能手机操作系统,Android SDK是其开发环境,如果要为Android开发软件包,可以在官网下载 Android Studio:<br />
<a href="https://developer.android.com/studio" target="_blank">
https://developer.android.com/studio </a> <br />
Android Studio 仅支持64位系统。下载解压后运行 android-studio/bin/studio.sh 文件即可。<br /><br />
<!-- TODO: 是否需要相关依赖?以及一张 Android Studio 运行在 openSUSE 下的截图
<center><a href="picdev/android.png" rel="thumbnail"><img src="picdev/androids.png" alt="android" class="pic" /></a></center>
-->
<br />
<br /><br />
<div class="heading2">17.9 版本控制软件</div>
版本控制软件是开发软件、维护软件源码、软件代码更新、下载和发布的综合管理平台。比如openSUSE的源代码就完全通过git来开发、管理、下载、发布的(如
<a href="http://gitorious.org/opensuse" target="_blank">
http://gitorious.org/opensuse
</a>)。
因为开源社区维护开源软件时,很多时候同一软件的开发者不可能始终凑一起开发,所以分布式版本控制软件就很必要。这样可以在各种环境开发和更新软件源码。常用的版本控制系统有:CVS(Concurrent Versions System)、SVN(Subversion)、Git、
Mercurial、Bazaar等。<br /><br />
关于Linux下的版本控制软件,推荐看这个帖子:<br />
<a href="http://www.ibm.com/developerworks/cn/linux/l-vercon/index.html" target="_blank">
http://www.ibm.com/developerworks/cn/linux/l-vercon/index.html
</a>
<br /><br />
<div class="heading3">17.9.1 CVS</div>
CVS是一个老牌的版本控制系统,根据维基百科介绍,很多开源或者自由软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括:Gnome、KDE、GIMP、Wine等。CVS的使用获GNU通用公共许可证授权。<br /><br />
CVS安装命令:<br />
<div class="clroot">zypper in cvs cvs-doc cervisia</div><br />
查看CVS内置帮助说明的命令:
<div class="cl">cvs --help</div> <br />
<div class="heading3">17.9.2 SVN</div>
根据维基百科介绍,Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。2009年11月,Subversion被Apache Incubator专案所接收。2010年1月,正式成为Apache软件基金会的一个顶级专案。<br /><br />
SVN安装命令:<br />
<div class="clroot">zypper in subversion subversion-doc kdesvn</div><br />
还有其他 Subversion相关的包,比如cvs2svn是将CVS源转换成SVN的源, kdesvn是SVN的图形客户端,subversion-server和subversion-tools是搭建SVN服务器的Apache软件模块和管理工具。查看SVN内置帮助说明的命令:<br />
<div class="cl">svn help</div><br />
<div class="heading3">17.9.3 Git</div>
Git是Linux内核开发老大Linus Torvalds创立的,是为了更好地管理Linux内核。
当然现在不止是内核,发行版如Fedora、openSUSE、Arch Linux,
图形库如Qt、Gtk+,还有很多基础软件源码也都是Git管理、下载和发布的。<br /><br />
Git安装命令:<br />
<div class="clroot">zypper in git qgit</div><br />
软件管理器会自动安装依赖包:git-core、git-cvs、git-email、git-gui、git-svn 、git-web、gitk。除了默认的git-gui,还有Gtk+版的gitg图形界面和Qt版的qgit 图形界面。
查看Git内置帮助说明的命令:<br />
<div class="cl">git help</div><br />
安装了Git之后,前面介绍过,几乎所有的集成开发环境都带了各种版本控制软件的功能插件。比如装了Git之后,KDevelop的Git插件就可以正常使用了,不会再报插件禁用的问题。QtCreator可以从版本控制系统管理的项目导入现有项目,也可以通过Git插件发布代码到网上。<br />
<center><a href="picdev/qtcreator02.png" rel="thumbnail"><img src="picdev/qtcreator02s.png" alt="qtcreatorgit" class="pic" /></a></center>
<br />
<div class="heading3">17.9.4 Mercurial</div>
根据维基百科介绍,Mercurial 是一个跨平台的分布式版本控制软件。
Mercurial主要由Python语言实现,不过也包含一个用C实现的二进制比较工具。
Mercurial主要由一个命令行程序组成,但现在也有了图形用户界面。
对Mercurial的所有操作都由用不同的关键字作为参数调用程序hg来实现,Hg是参考水银的化学符号而取的名字。Mercurial是以GPLv2发布的自由软件。
采用Mercurial管理项目的软件有Mozilla、OpenJDK、OpenSolaris、Xen、Audacious、Netbeans等。
<br /><br />
Mercurial安装命令:<br />
<div class="clroot">zypper in mercurial mercurial-lang hgview-qt4</div><br />
查看Mercurial内置帮助说明的命令:<br />
<div class="cl">hg help</div><br />
<div class="heading3">17.9.5 Bazaar</div>
根据百度百科,Bazaar是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical 公司(Ubuntu母公司)赞助。 使用Bazaar的项目或组织包括 MySQL、 Mailman、Launchpad、
Linux Foundation等等,Ubuntu和Debian的很多东西当然也用Bazaar管理。
<br /><br />
Bazaar安装命令:<br />
<div class="clroot">zypper in bzr bzr-lang</div><br />
查看Bazaar内置帮助说明的命令:<br />
<div class="cl">bzr help</div><br />
<!-- end -->
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 50%;"><div style="text-align: center;"><a href="wlan.php"><img class="pic" style="width: 32px; height: 32px;" alt="prev" src="images/pics/prev.png" /></a></div></td>
<td style="width: 50%;"><div style="text-align: center;"><a href="obs.php"><img class="pic" style="width: 32px; height: 32px;" alt="next" src="images/pics/next.png" /></a></div></td>
</tr>
</tbody>
</table>
<!-- stats start -->
<!--
<hr align="center" width="99%" />
<center><script type="text/javascript" src="http://www.livewebstats.dk/counter.php?id=1959&mark="></script></center><br />
-->
<!-- stats slut -->
<!-- sponsor start -->
<!--
<div style="text-align: center;">Hosting sponseret af:<br />
<a href="http://www.enavn.dk/"><img style="border: 0px" alt="liga" src="images/pics/enavn.gif" /></a></div><br />
-->
<!-- sponsor slut -->
<!-- <div class="lille" align="center">Send feedback to <a href="mailto:admin@opensuse-guide.org">admin [at] opensuse-guide.org</a></div> -->
<div class="small" align="center">
本文档翻译自 <a href="http://opensuse-guide.org/" target="_blank">http://opensuse-guide.org/</a> 不当之处,还望指正<br />
使用e-mail发送您的英文评论给 admin [at] opensuse-guide.org <br />
或发送意见和建议给中文译者:Libitum (hello[at]libitum.org);
Winland (winland0704[at]126.com)
</div>
</div>
</body>
</html>