solaris操作系统做c应用程序开发步骤
1、开发C程序的必要工具和设置
A,Solaris下的开发工具
在solaris下开发C应用程序,缺省开发环境是Sun Studio。目前Sun Studio 11是Sun公司最新的C/C++/Fortran开发工具,这个工具已经安装在Unix体验中心的服务器上,我们可以直接使用。在Sun Studio 中,其中C程序的编译工具名称为cc。还有的就是make这个命令,make命令是Solaris安装后就自带了,不需要我们另外安装。
B,设置环境变量
在solaris下开发C应用程序,需要把编译器和make的路径加入到环境变量PATH中去,一般来说,可以使用export命令来进行这个方面的设置。假设您使用的shell为Bourne shell,Sun Studio 11的安装目录为/opt/SunStudio_11/SUNWspro,make通常安装在/usr/ccs/bin目录下,则可以使用如下命令进行设置:
# PATH=/opt/SunStudio_11/SUNWspro/bin:/usr/ccs/bin:$PATH
# export PATH
(需要说明的是,在Unix体验中心的服务器上,这个环境变量已经提前设置好,并不需要用户自行设置。)
2、 开发只有一个文件的简单程序
如果你的C应用程序只包含一个源程序文件,则编译时不需要用Makefile,下面以一个简单的Hello World程序来做为例子,比如我们有个简单的C程序Hello.c,其内容见下:
#include <stdio.h>
int
main()
{
printf(”Hello World\n”);
}
在编译这个程序的时候,可以采用如下两种方法,
# cc -o hello hello.c
或者:
# make hello
这两种方法都可以直接生成应用程序hello,前一种方法是直接用编译命令cc来生成目标代码。后一种方式要是用make来生成目标代码,这种方法仅适用于编译一个源文件,注意make后边的参数应该是C源程序的文件名的. 前面的部分,即hello。
3、开发含有多个文件的C应用程序
如果我们有多个源文件的时候,比如有一个是主程序,另一个具体的函数实现,外加一个头文件,这里还是用Hello World做为例子来说明,例子中有三个源程序文件, 两个为C源文件,主程序hello.c和具体函数实现hello_f.c,一个为C头文件,分别为:
如下是源代码hello.h的内容:
void hello();
如下是源代码hello.c的内容:
#include “hello.h”
int
main()
{
hello();
}
如下是源代码hello_f.c的内容:
#include
void
hello()
{
printf(”Hello World\n”);
}
我们可以用一个命令就将这个编译任务完成,为:
# cc -o hello hello.c hello_f.c
但在系统中,我们会发现这个命令会产生三个文件,hello,hello.o和hello_f.o,那么这三个文件是如何产生出来的,整个编译过程是如何呢?为了简化起见,我们用以下的三个命令来说明产生这些文件的过程,大概的步骤为:
# cc -c hello.c
# cc -c hello_f.c
# ld -o hello -lc hello.o hello_f.o
4,使用Makefile来开发一个工程
在以上的例子中,我们是用了命令行来直接编译程序,但在实际工作中,一个项目只有一个或两个源代码文件的情况非常少,大的项目往往会有上千个源代码文件,如果我们只是用简单的命令行去编译这些文件,不但每次要写一堆的命令,容易出错,而且难于保持编译选项的一致,对于这种情况,我们会采用 Makefile来做相应的编译组织和管理。还是以上面的Hello World为例来说明如何写出一个简单的Makefile来编译程序。
我们写一个简单的Makefile来编译这个简单的项目HelloWorld.
如下是我们的Makefile的内容:
all:hello
hello: hello.o hello_f.o
cc -o hello hello.o hello_f.o
hello.o: hello.c
cc -c hello.c
hello_f.o: hello_f.c
cc -c hello_f.c
clean:
rm -f *.o hello
这只是一个非常简单的Makefile,实际项目中,我们遇到的是更加复杂的Makefile,关于Makefile的语法以及规则,可以得到很多有帮助的教程来学习,这里就不做为重点介绍了。
Makefile生成后,我们就可以用它来编译程序了,如下
# make
cc -c hello.c
cc -c hello_f.c
cc -o hello hello.o hello_f.o
从而顺利的生成了目标代码。
上一篇:三种获取网页源码的方法(使用MFC/Socket实现)
栏 目:C语言
下一篇:纯C语言:分治快速排序源码分享
本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/3834.html
您可能感兴趣的文章
- 01-10C语言 解决不用+、-、&#215;、&#247;数字运算符做加法
- 01-10怎么通过C语言自动生成MAC地址
- 01-10关于数组做函数参数的问题集合汇总
- 01-10Linux下用Valgrind做检查(防止内存泄露)
- 01-10主流操作系统平台的宏定义
- 01-10C++设计模式之观察者模式
- 01-10C语言拓展实现Lua sleep函数
- 01-10学习二维动态数组指针做矩阵运算的方法
- 01-10在C语言中调用C++做的动态链接库
- 01-10学好C++必须做到的50条 绝对经典!
阅读排行
本栏相关
- 04-02c语言函数调用后清空内存 c语言调用
- 04-02func函数+在C语言 func函数在c语言中
- 04-02c语言的正则匹配函数 c语言正则表达
- 04-02c语言用函数写分段 用c语言表示分段
- 04-02c语言中对数函数的表达式 c语言中对
- 04-02c语言编写函数冒泡排序 c语言冒泡排
- 04-02c语言没有round函数 round c语言
- 04-02c语言分段函数怎么求 用c语言求分段
- 04-02C语言中怎么打出三角函数 c语言中怎
- 04-02c语言调用函数求fibo C语言调用函数求
随机阅读
- 01-10delphi制作wav文件的方法
- 01-10SublimeText编译C开发环境设置
- 01-10C#中split用法实例总结
- 04-02jquery与jsp,用jquery
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-11ajax实现页面的局部加载
- 01-10使用C语言求解扑克牌的顺子及n个骰子