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
從而順遂的生成了目的代碼。