linux下编译多个文件
例如:
/home/files文件夹下有文件main.c:
#include <stdio.h>
#include "tou.h"
void main()
{
a();
}
/home/files/common文件夹下有文件tou.h和shixian.c。
tou.h为:
extern void a();
若有多个shixian文件,比如shixian1.c, shixian2.c,都可以在tou.h中用extern声明出来。
shixian.c为:
#include <stdio.h>
void a()
{
printf("a");
}
编译时用命令:gcc main.c ./common/shixian.c -o main -I /home/files/common
其中,-I /home/files/common代表链接到头文件所在目录。若.h文件都在本目录下,则不用加-I指明.h文件所在文件夹。
另外,-lm表示链接到数学函数库。
相关文档:
64位 linux 编译链接错库的问题
在64位机器下面编译软件的时候,经常会遇到编译的时候需要链接64位的库,但是编译时找的却是32位的库,可以通过如下的办法强制编译程序去找64位的库
LDFLAGS="-L/usr/lib64 -L/lib64" \
在配置时加上这么一个选项即可。
......
今天编译BlueZ的时候,突然间发生了一个创建 硬链接失败 ,脑海里跳出了了一个什么是硬链接的概念,一时间还真回答不上来,google了下,发现这篇博文描述的很清晰,转载之,以备忘...
链接——是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。
Linux中包括两种链接:硬链接(Hard Link)和软 ......
引言
find最强大,什么都能查,可以根据条件查找文件。
which只能查可执行文件和别名(alias)。
whereis只能查二进制文件、说明文档,源文件等,可以找到可执行程序和man page。
locate是在数据库里查找,数据库大至每天更新一次,但跟whereis一样都是查数据库里的内容。
1.find /etc -name my.so
2.locate 是用来通过 ......
在我们通过SSH登陆服务器后,一般来说,所做的操作或者命令的输入都是属sshd下的shell的子进程,例如打开个SSH终端,输入ping www.163.com >>output.txt &,然后查看进程情况:
$ ps -ef|grep ping
sszheng 27491 27467 0 10:20 pts/0 00:00:00 ping www.163.com
sszheng 27535 27467 ......
容提要
本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现命令行提示符的整个Linux启动过程。并且介绍了启动中涉及到的各种文件。
阅读Linux源代码,无疑是深入学习Linux的最好方法。在本文对Linux启动过程的介绍中,我们也尝试从源代码的视角来更深入的剖析
Linux的启动过程,所以其中也简单涉 ......