服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - solaris操作系统做c应用程序开发步骤

solaris操作系统做c应用程序开发步骤

2021-01-12 15:01C语言程序设计 C/C++

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

 

从而顺利的生成了目标代码。

延伸 · 阅读

精彩推荐
  • C/C++C语言main函数的三种形式实例详解

    C语言main函数的三种形式实例详解

    这篇文章主要介绍了 C语言main函数的三种形式实例详解的相关资料,需要的朋友可以参考下...

    ieearth6912021-05-16
  • C/C++c/c++内存分配大小实例讲解

    c/c++内存分配大小实例讲解

    在本篇文章里小编给大家整理了一篇关于c/c++内存分配大小实例讲解内容,有需要的朋友们可以跟着学习参考下。...

    jihite5172022-02-22
  • C/C++深入C++拷贝构造函数的总结详解

    深入C++拷贝构造函数的总结详解

    本篇文章是对C++中拷贝构造函数进行了总结与介绍。需要的朋友参考下...

    C++教程网5182020-11-30
  • C/C++关于C语言中E-R图的详解

    关于C语言中E-R图的详解

    今天小编就为大家分享一篇关于关于C语言中E-R图的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看...

    Struggler095962021-07-12
  • C/C++c/c++实现获取域名的IP地址

    c/c++实现获取域名的IP地址

    本文给大家汇总介绍了使用c/c++实现获取域名的IP地址的几种方法以及这些方法的核心函数gethostbyname的详细用法,非常的实用,有需要的小伙伴可以参考下...

    C++教程网10262021-03-16
  • C/C++C语言实现双人五子棋游戏

    C语言实现双人五子棋游戏

    这篇文章主要为大家详细介绍了C语言实现双人五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    两片空白7312021-11-12
  • C/C++使用C++制作简单的web服务器(续)

    使用C++制作简单的web服务器(续)

    本文承接上文《使用C++制作简单的web服务器》,把web服务器做的功能稍微强大些,主要增加的功能是从文件中读取网页并返回给客户端,而不是把网页代码...

    C++教程网5492021-02-22
  • C/C++OpenCV实现拼接图像的简单方法

    OpenCV实现拼接图像的简单方法

    这篇文章主要为大家详细介绍了OpenCV实现拼接图像的简单方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    iteye_183805102021-07-29