Unix/Linux 软件安装
首先我们明确。在Unix like的机器上,一套软件并不唯独一个程序,而是一堆程序代码文件。
比如main.c,haha.c,sin_value.c这三个源码文件。
1.程序源代码
1.1用gcc等编译工具手动编译
#什么是gcc工具?GNU的gcc工具是非常通用的C语言编译器。
gcc -c main.c
gcc -c haha.c
gcc -c sin_value.c
gcc -c cos_value.c
生成main.o,haha.o,sin_value.o,cos_value.o 4个经过编译文件。
将几个.o文件进行连接。并增加libm数学函数,以生成main可运行文件。
gcc -o main main.o haha.o sin_value.o cos_value.o
-lm -L/usr/lib -L/lib
#然后我们就能够跑main这个可运行文件了。
[padep@cnsz081003 fwy]$ ./main
Please input your name: fengweiyuan
Please enter the degree angle (ex> 90): 110
Hi, Dear fengweiyuan, nice to meet you.
The Sin is: 0.94
The Cos is: -0.34
1.2 用configure与make等工具编译源代码
./configure
检測用户环境,检查该OS是否适合等。然后会生成makefile文本文件。
1.是否有适合的编译程序,能够编译本软件的程序源代码。
2.是否已经存在本软件所需的函数库或其它依赖软件。
3.OS平台,包含内核版本号,是否适合本软件。
4.内核的头定义文件是否存在。
makefile其中记录了源代码怎样编译等信息。这个步骤的相关信息你能够參考README与INSTALL等文件。
makeclean
不一定须要。但运行一下比較安全。假设已经有上次编译过的.o文件存在,当然是清除一下比較好。这样我们就可确定新编译出来的运行文件我们能够确定是使用自己的机器所编译完毕的。
make
会在当前文件夹下搜索makefile这个文本文件,利用makefile来编译源代码,编译成可运行文件,放当前文件夹下。(这个过程就如上面1.1的生成.o文件,将.o文件连接一起并加函数库的工作)。
make会自己主动推断源代码是否经过变动了而自己主动更新运行文件。
make install
假设makefile里面有写上关于install的选项。就会将上一步编译完毕的文件安装到默认的文件夹下。以完毕安装。
这些步骤是一个一个来的,前面的没有成功,后面的也无法运行。
总结
因为不同OS的函数库路径、或者函数库文件名称定义,或者是默认安装的编译程序。以及内核版本号不同。
理论上,不能将CentOS 5.x上编译出来的二进制文件(二进制运行文件包括该OS上函
【原创】这道Java基础题真的有坑!我求求你,认真思考后再回答。
【原创】这道面试题我真不知道面试官想要的回答是什么
【原创】Dubbo加权轮询负载均衡的源码和Bug,了解一下?
【原创】一文讲透Dubbo负载均衡之最小活跃数算法
使用环信开发项目遇到错误提示 configure your build for VectorDrawableCompat
Android开发中使用七牛云存储进行图片上传下载
Android5.0中Material Design的新特性
CameraAPI中的 自定义照相功能
RecyclerView使用技巧(item动画及嵌套高度适配解决方案)