安装KDevelop开发c/c++程序

来源:互联网 发布:廊坊php待遇 编辑:程序博客网 时间:2024/05/16 07:11

1. KDevelop只是一个IDE,要想编译c/c++程序,要安装make和GCC,以及头文件,那就从这里开始:

sudo apt-get build-dep gcc
sudo apt-get install build-essential

2.安装KDevelop

sudo apt-get install kdevelop3

3.安装好后,可以在应用程序->编程 中看到 KDevelop了。下面这个使用KDevelop开发程序是转的,偷下懒:-)

基本步骤
一般而言,用KDevelop编程大体要经历如下几个步骤。编程是比较复杂的,很难一次成功,这些步骤
可能要反复进行多次。

第一步,新建工程
可以通过菜单操作启动相应的向导程序,借助它完成工程的初建工作。
【Project】→【New Project】
在新建工程过程中,主要需要指定工程文件保存位置、工程名称、工程类型,并且可以填写编程作者
的信息。根据所选工程类型(比如,是文本界面的程序还是图形界面的程序,是C程序还是C++程序),向导程序会自动生成一批模板文件。

第二步,编辑程序文件
向导程序一般会创建一些程序文件,应该对这些文件进行编辑以满足特定的编程需要。
还可以执行菜单操作来增加新的文件。
【File】→【New】
上述操作后,会出现一个对话框,用于指定文件名和文件类型。根据文件类型的不同,会自动设定合
适的扩展名。注意,“Add to project”复选框应该勾选上以确保新文件被加入到当前的工程中。

第三步,生成源码结构
在编辑好程序文件后,要先借助GNU Build System生成系统生成源码结构。在增加了新文件(或目
录)、修改了文件(或目录)名、改变文件的保存位置之后,都应该重新生成源码结构。具体而言,生成源码结构包括autoconf、automake等操作,把每个子目录的Makefile.am变成了Makefile.in。具有源码结构的程序文件包可以在任何UNIX、LINUX的系统上使用简单的命令(即configure/make/make install等)进行配置、编译、连接和安装。
可以执行菜单操作来生成源码结构:
【Build】→【Run automake&conf】

第四步,配置,即运行configure
configure是一个脚本,用来确定所处系统的细节,比如使用何种编译器、何种库,以及编译器和库的
保存位置,并把Makefile.in的相应部分进行替换,形成Makefile。
可以执行菜单操作来进行配置:
【Build】→【Run configure】

第五步,编译连接
执行菜单操作【Build】→【Built Project】即可完成编译连接,形成可执行文件。默认情况下,这种可执行文件是带有源码调试符号的。
对于多文件的程序,一般需要对每一个文件分别进行编译生成目标文件。当每个文件的编译通过之后,再统一进行编译连接。单独编译当前正在编辑的文件的菜单操作是:
【Build】→【Compile File】

第六步,运行
如果想在KDevelop的控制下运行已编译连接好的程序,可以执行菜单操作:
【Build】→【Excecute program】
如果想单独运行程序,则需要先安装,然后在命令行中输入相应的可执行文件的名字(一般来讲,就是
工程的名字)即可。KDevelop会把可执行文件放在/usr/local/bin之中
【Build】→【Install】

编写程序文件
通过菜单操作【Project】→【New Project】启动新建工程向导程序,选择工程类型,并指定 工程名称及其保存位置,如图所示。接下来一路点击Next即可完成工程的创建工作。
向导程序会自动生成一个含有主函数的文件。以此文件是一个模板,在它的基础上修改并添加代码,
即可编写需要的程序。

编译
程序写好后,应该把文件保存起来,然后按照前面提到的步骤,生成源码结构、配置、编译,即依次
执行如下菜单操作:
【Build】→【Run automake&conf】
【Build】→【Run configure】
【Build】→【Compile File】
每一个操作若能正常完成,在Messages窗口中会出现Success的提示。如果没有Success的提示,则表明相应的操作失败,应查明原因。
一般来讲,生成源码结构和配置这两个操作都能顺利通过。
如果编译连接是首次进行,则一般会失败,因为很少有人能一次写出没有任何语法错误的程序。查看
Messages窗口中的提示信息,可以了解哪些地方出现了语法错误。单击某一条错误提示信息,KDevelop会自动把光标定位到发生该错误的语句上。
依据错误提示,修正程序中的语法错误,然后再次尝试编译,直到出现Success的提示。
经常出现的一种情况是,程序上的一个语法错误会导致多条错误信息的出现。因此,应该把第一条错
误信息认真处理好,再从随后的错误信息中随机选择几条加以处理,然后就再次尝试编译,看还有没有错误信息。如此反复多次,直到把所有的错误提示消除掉,编译就成功了。不要把所有错误信息都依次处理完再尝试编译,那样的效率比较低。

生成可执行文件
编译成功后,执行菜单操作【Build】→【Built Project】即可生成相应的生成可执行文件。

调试
接下来,可以执行菜单操作【Build】→【Excecute program】试运行程序。这种运行是在KDevelop的控制下进行的。因此,如果出现“死循环”,可以执行菜单操作【Build】→【Stop】或按Esc键即可中止程序的运行。
如果在程序中存在逻辑错误,就得不到期望的结果。逻辑错误的排除比较困难。必须对程序进行仔细
的分析才能找到错误的原因。
一般的逻辑错误可以根据程序的运行表现加以判断。比较深层次的逻辑错误则需要借助调试工具。
本章前面介绍的调试工具GNU gdb就是一个很好的工具,可以用它对程序进行仔细分析,查找逻辑错
误的根源。默认情况下,经过【Build】→【Built Project】操作之后,可以在工程目录下的/debug/src/中找到带源代码调试符号的可执行文件。
发现逻辑错误后,就要修改程序,重新编译连接。然后再试运行。如果仍然得不到期望的结果,说明
程序中还有逻辑错误,应再次进行分析。如此反复多次,直到消除全部的逻辑错误。

发布可执行文件
如果只想发布程序的可执行文件,可以先调整项目的编译连接选项,选择优化编译的方式。这样可以
得到更小更快的可执行文件。
可以通过菜单【Project】→【Build Configuration】修改编译连接选项。此菜单之下有三种选项,默认为Debug,生成的可执行文件中含有源程序调试符号;还可以选择 Default或Optimized。选择Optimized时,编译连接时将进行优化,生成的可执行文件更小,执行起来也更快。
选择Debug时,可执行文件保存在工程目录下的/debug/src/中;选择Optimized时, 可执行文件保存在工程目录下的/optimized/src/中;选择Default时, 可执行文件保存在工程目录下的/src/中。
如果要发布可执行文件,应该选择Optimized的方式进行编译连接。

发布源程序
把工程目录及其中的所有文件打包即可形成源程序包。用户得到这个源程序包并解压后,不必安装KDevelop 就可以按标准方法进行编译和安装,即支持
configure,make,make install,make clean,make uninstall等命令。这个包也含有KDevelop的工程文件和其他相关的信息。因此,如果用户安装了KDevelop,可以直接打开该工程进行修改。
如何使用已有的源文件?
KDevelop主窗口的右侧有一个Automake Manager标签。点击该标签,就可以看到本工程源文件所在的文件夹以及各文件。在列有文件的那个窗口上方有工具条,其中就是用来添加文件的。添加文件有两种方式,一种是链接(link)方式,另一种是复制(copy)方式。
2楼
云淡风轻 发表于:2007-6-15 14:34:31

4.遇到的问题,按照上面的方法编译第一个程序时遇到了问题:

a)运行Run automake&friend时,报错:

 

这是由于没有安装automake造成的,解决方法是在终端中运行下列代码:

 

b)再次运行Run automake&friend时遇到错误:

 

这是由于没有安装libtool造成的,解决方法是

 

c)终于编程通过了,但是在Excecute program又提示错误了:

konsole not found

这是由于没有安装konsole造成的,安装就好了

 

再次运行,终于看到结果了,收工(*^__^*)

sudo apt-get install konsole
sudo apt-get install libtool
macro `AM_PROG_LIBTOOL' not found in library
make: *** [all] Error 1
*** Exited with status: 2 ***
sudo apt-get install automake1.9
cd '/home/long/code/dev/test' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make -f Makefile.cvs
aclocal
make: aclocal:命令未找到
make: *** [all] 错误 127
*** Exited with status: 2 ***