Fedora Linux 下安装配置C开发环境Code::Blocks
一、提前的话
要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编译调试工具,不过这些工具都是命令式的,正式开发的话会很不方便。Fedora在安装的时候可以选择安装Fedora Eclipse,这个IDE很强大,C,C++,Java,Python等等都支持,而且编译,调试和测试等功能也很完善。不过一般太强大的东西都有一个 毛病就是速度会比较慢,在dave的机器上,打开Eclipse需要20秒之多,选项也太多,用起来眼花缭乱。我们想要一个快速,灵活而不失强大的C开发 环境。
Code::Blocks是一款跨平台的C/C++的IDE。支持Windows,Linux,Mac操作系统,支持多种编译器,像 Microsoft C,GNU C,Borland C,Intel C等等,在Windows下有附带GNU C的版本。在Linux下自然不需要附带,因为系统已经给我们准备好了,那么下面咱们就安装并体验下这个IDE吧。
二、安装
Fedora等支持YUM的系统可以直接使用YUM命令来安装,在root账户下输入以下命令
yum install codeblocks
然后按照提示操作即可。
Ubuntu等支持apt-get的系统可以使用apt-get install codeblocks下载安装,或者从官网http://www.codeblocks.org/下载安装,具体步骤不再详述。
三、配置
安装成功之后,主菜单-->编程-->Code::Blocks IDE 进入IDE,第一次打开软件的时候会自动检测系统中存在的C编译器,Linux下一般都是自动检测到GNU C
图1:自动检测系统自带的编译器
检测完毕,点确定进入软件环境就可以看到Code::Blocks的界面了。
图2:Code::Blocks默认界面
是不是觉得窗口上的工具条有点乱,按照自己的喜好拖动下,立刻变得很整洁。
图3:调整后的界面
在dave的机器上,Code::Blocks检测出来的编译器的路径有点问题,以至于无法编译程序,不知道是不是系统的BUG,所以我们还要进一步检 查编译器的路径。点击菜单栏的Settings-->Compiler and debugger...进入编译器和调试器的设定对话框,看Selected compiler是不是你想要使用的编译器,由于我们默认是GNU C,所以这里显示的是GNU GCC Compiler。
图4:默认的GNU C编译器
然 后点击 Search directories旁边的箭头四次,使得标签到Toolchain executables这一项,然后在观察Compiler's installation directory 下面的文本框里填写的是不是你编译器的路径。Fedora下的GNU C默认路径是在/usr/bin下,这里显示的也是/usr
相关文档:
引言
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期, solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。
......
修改线程的属性
在上一节的例子里,我们用pthread_create函数创建了一个线程,在这个线程中,我们使用了默认参数,即将该函数的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有必要来了解一下线程的有关属性。
属性结构为pthread_attr_t,它同样在头文件/usr/include/pthread.h中 ......
一、定义:什么是孤儿进程和僵尸进程
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对 ......
1、用虚拟机加windows开发linux程序
2、编辑器用SourceInsight
3、构建共享目录,挂载共享目录
4、windows下共享目录权限的设置
5、用编译器编译出可执行程序
linux下 网络编程 必备头文件
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <netinet/in.h>
......
关键词:
栈区:就是一个内存地址空间,每调用一次函数就会在栈区为此函数分配一段空间(主要用于存储局部变量,
此段空间下面就直接定义为函数栈)
ebp :用于存放函数栈的栈顶地址
esp:用于存放此函数栈的栈底地址
注意:栈顶地址大于栈底地址,栈是从栈顶向栈底增长。即ebp-->esp;
下面我们分析如下代码例子,看 ......