LINUX下进行C语言编程
源程序编译
Makefile的编写
程序库的链接
程序的调试
头文件和系统求助
1.源程序的编译
在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.
假设我们有下面一个非常简单的源程序(hello.c):
int main(int argc,char **argv)
{
printf( " "Hello Linux " ");
}
要编译这个程序,我们只要在命令行下执行:
gcc -o hello hello.c
gcc 编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程序的输出结果了.命令行中
gcc表示我们是用gcc来编译我们的源程序,-o 选项表示我们要求编译器给我们输出的可执行文件名为hello
而hello.c是我们的源程序文件.
gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了.
-o选项我们已经知道了,表示我们要求输出的可执行文件名. -c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件.
-g选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息.
知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说明.
2.Makefile的编写
假设我们有下面这样的一个程序,源代码如下:
/* main.c */
#include " "mytool1.h " "
#include " "mytool2.h " "
int main(int argc,char **argv)
{
mytool1_print( " "hello " ");
mytool2_print( " "hello " ");
}
/* mytool1.h */
#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str);
#endif
/* mytool1.c */
#include " "mytool1.h " "
void mytool1_pr
相关文档:
在fc8的dom0上安装e1000e网卡驱动
#make
#Linux kernel source not configured: missing autoconf.h
解决方法:
在编译xen时未使用make config
此时可以找到源码,其中包含.config文件,运行make oldconfig即可生成autoconf.h
从而可以成功编译安装内核。 ......
Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态,linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。
Linux内核是多进程、多线程的操作系统,它提供了相当完整的内核同步方法。内核同步方法列表如下:
中断屏蔽
原子操作
自旋锁
读写自旋锁
顺序锁
......
c运行库malloc分配的内存在哪里呢,首先上代码:
//内存大小连接器将其地址指向-heap选项
extern _DATA_ACCESS int _SYSMEM_SIZE;
//内存区域
#pragma DATA_SECTION(_sys_memory, ".sysmem")
far PACKET _sys_memory[1] = { ((size_t)&_SYSMEM_SIZE) - sizeof(PACKET), 0 };
  ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
当今,不少
Linux
用户也使用其他操作系统,有时这样,有时那样,难于精确统计。证据何在?
5
月
7
日,
www.w3couter.com
网站发布每月统计数 ......