当前位置:  编程技术>c/c++/嵌入式

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

    来源: 互联网  发布时间:2014-10-23

    本文导语:  1、开发C程序的必要工具和设置 A,Solaris下的开发工具 在solaris下开发C应用程序,缺省开发环境是Sun Studio。目前Sun Studio 11是Sun公司最新的C/C++/Fortran开发工具,这个工具已经安装在Unix体验中心的服务器上,我们可以直接使用。在...

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

int
main()
{
printf(”Hello Worldn”);
}

在编译这个程序的时候,可以采用如下两种方法,

代码如下:

# 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 Worldn”);
}

我们可以用一个命令就将这个编译任务完成,为:

代码如下:

# 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

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


    
 
 

您可能感兴趣的文章:

  • Solaris下有没有访问PCI配置空间的应用程序??
  • 在solaris开发应用程序的问题?请赐教急啊! 在线!
  • solaris 下怎样编写脚本创建自己应用程序的图标?
  • solaris下通过应用程序如何访问pci设备的配置空间,i/o空间等?
  • 简单问题:solaris下如何在后台运行应用程序?
  • Solaris x86 下的应用程序是不是很有限?
  • 在solaris下如何获得应用程序路径?类似于windows下的GetModuleFileName函数的功能。
  • 请问如何通过telnet的方式启动服务器(solaris)上的用.sh角本方式启动java写的应用程序,在退出telnet时服务器上的应用程序不会退出?
  • 一个solaris8下的应用程序自动启动的问题,好好困惑啊!!!
  • 那位大哥有Solaris下安装配置cvs的具体步骤,我先谢了!!!!
  • 请问怎样在一台电脑上安装solaris8 和win98?如方便,请给出详细的安装步骤.谢谢
  • 哪位朋友给点SOLARIS 下 用MOTIF 库写GUI程式的方法,步骤
  • 送分:SUN Solaris上怎样打补丁?(要步骤并请举一例)
  • 各位大哥,请问怎样在solaris下安装SSLeay。具体步骤 ,谢谢
  • 寻求在solaris8下安装oracle8.1.7和weblogic6.1的详细步骤和注意事项
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求 solaris 日常操作管理的电子书,谢谢.
  • 我该学什么操作系统,Solaris 还是 Linux ?
  • 关于Solaris操作系统的问题
  • Solaris 操作系统安装问题
  • SUN的enterprise 250除了solaris还可以安装哪种LINUX的操作系统?
  • Solaris操作系统在启动的时候出错,急急救命呀 高分求救~~~
  • solaris 8下磁带机怎么操作?
  • 谁知道solaris对socket的recv和send函数是否是原子操作,谢谢!!
  • 高手请进!Solaris下如何实现原子加的操作?不用互斥量等等同步对象!
  • 请问solaris中怎样用mount命令对软盘和cdrom操作?
  • (Solaris、Aix、Hp-ux) 和 Suse 操作命令有那些区别?
  • Solaris下,如何在程序中实现关机操作?怎样取出线程和进程数?谢谢!
  • solaris、AIX、HP-UX这三种UNIX中记录useradd这个操作的日志文件在哪?
  • Solaris中,我对未初始化的char*进行strlen()操作不报错! 初学.请多帮忙
  • ultra80工作站,solaris8操作系统,因为没有正常关机启动不起来,怎么办(不可以重装)??
  • 超級終端的顯示無法進行安裝Solaris10的操作!謝謝!如附件…
  • 笔记本上安装可以安装Solaris 10操作系统吗?
  • 正在Downing Solaris Unix 10,想了解双操作系统(Windows XP)的安装要注意什么问题?
  • solaris 10 下用OCCI操作oracle 10g链接出错!!!
  • 浙ICP备11055608号-3 iis7站长之家
  • Solaris菜鸟!!!请问Solaris SPARC和Solaris x86这两个版本之间有什么具体的差异吗?
  • 请问Solaris现在最高的版本是多少?Solaris8.0价格如何?Solaris8.0和Red Hat Enterprise Linux AS 3.0有何区别?
  • 请教solaris高手一个solaris安装问题
  • solaris 10下的多线程和solaris 5.8下多线程编译有什么区别??
  • 听说在solaris上运行java飞快,solaris有多大,如果不大,我想下载,哪有下载?
  • 请问:SOLARIS(for intel)如何装d-link网卡。哪儿下Solaris电子文档。
  • Solaris for X86 和Solaris for Sparc主要区别在哪?
  • 请问Solaris的优势?Solaris下开发相关及系统管理相关资料是否有提供?谢谢
  • telnet 进去的时候我看写着SUN OS5.8,这个是不是Solaris?我找不到Solaris5.8的软件?
  • 没有光碟,怎样从solaris8升级到solaris9?
  • solaris 10能不能远程桌面连接Solaris 10(或 Linux) ,不要安装其他软件


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3