程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> solaris操作體系做c運用法式開辟步調

solaris操作體系做c運用法式開辟步調

編輯:關於C++

solaris操作體系做c運用法式開辟步調。本站提示廣大學習愛好者:(solaris操作體系做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

從而順遂的生成了目的代碼。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved