<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>From VMS to Linux HOWTO: $B%W%m%0%i%_%s%0(B </TITLE> <LINK HREF="VMS-to-Linux-HOWTO-6.html" REL=next> <LINK HREF="VMS-to-Linux-HOWTO-4.html" REL=previous> <LINK HREF="VMS-to-Linux-HOWTO.html#toc5" REL=contents> </HEAD> <BODY> <A HREF="VMS-to-Linux-HOWTO-6.html">$B<!$N%Z!<%8(B</A> <A HREF="VMS-to-Linux-HOWTO-4.html">$BA0$N%Z!<%8(B</A> <A HREF="VMS-to-Linux-HOWTO.html#toc5">$BL\<!$X(B</A> <HR> <H2><A NAME="Programming"></A> <A NAME="s5">5. $B%W%m%0%i%_%s%0(B </A></H2> <P> <P>Linux $B$O%W%m%0%i%`$r:n$k$K$O(B<EM>$BNI$$(B</EM>$B4D6-$@$H;W$$$^$9!#%W%m%0%i%`$r4JC1(B $B$KAGAa$/:n@.$9$k$?$a$NB?$/$N%D!<%k$,B7$C$F$$$^$9!#Nc$($P!"JT=8(B - $BJ]B8(B - $B%3%s%Q%$%k(B - $B:FJT=8$H$$$C$?C1D4$J:n6H$K$"$/$;$/$7$J$/$F$b!"(B $BA0=R$N(B <CODE>emacs</CODE> $B$d(B <CODE>jed</CODE> $B$J$I$N%(%G%#%?!<$r;H$($P?WB.$K:n6H$G$-$^$9!#(B <P> <H2><A NAME="ss5.1">5.1 Fortran</A> </H2> <P> <P>$B$"$^$jBg:9$J$$$N$G$9$,!"$3$NJ8=q$r=q$$$F$$$k;~E@$GMxMQ$G$-$k(B($B%U%j!<(B)$B%3%s(B $B%Q%$%i!<$H(B VMS $B$H$G$O40A48_49$G$O$"$j$^$;$s(B - $B4v$D$+$N%^%$%J!<$J7Y9p$NH/@8$,M=A[$5$l$^$9(B( VMS $B$N%3%s%Q%$%i$OHsI8=`$N3HD%$r9T$J$C$F$$$k$N$G$9(B)$B!#(B $B>\:Y$O(B <CODE>/usr/doc/g77/DOC</CODE> $B$+(B <CODE>/usr/doc/f2c/f2c.ps</CODE> $B$r8fMw$/$@$5$$!#(B <P>$B%7%9%F%`4IM}<T$O!"(B<CODE>g77</CODE> $B%M%$%F%#%V%3%s%Q%$%i(B($B$9$0$l$b$N$G$9$,!"(B0.5.21 $BHG$G$O$^$@(B DEC Fortran $B$H8_49@-$O$"$j$^$;$s(B)$B$+!"(BFortran $B$+$i(B C $B$X$N%H%i(B $B%s%9%l!<%?$G$"$k(B <CODE>f2c</CODE> ($B5?;w%M%$%F%#%V%3%s%Q%$%i$N%U%m%s%H%(%s%I(B) $B$N(B $B$I$A$i$+$r%$%s%9%H!<%k$7$F$$$k$O$:$G$9!#;d$N7P83$G$O!"(B<CODE>yaf77</CODE> $B$,:G$b(B $BM%$l$?7k2L$r=P$9%Q%C%1!<%8$N0l$D$@$H;W$$$^$9!#(B <P><CODE>g77</CODE> $B$G(B Fortran $B%W%m%0%i%`$r%3%s%Q%$%k$9$k$K$O!"%=!<%9$rJT=8$7$F!"(B <CODE>.f</CODE> $B3HD%;R$r$D$1$FJ]B8$7$?8e!"(B <P> <BLOCKQUOTE><CODE> <PRE> $ g77 myprog.f </PRE> </CODE></BLOCKQUOTE> <P>$B$r<B9T$7$^$9!#(B <P>$B%G%U%)%k%H$G$O!"(B<CODE>a.out</CODE> $B$NL>$G<B9T%U%!%$%k$,@8@.$5$l$^$9(B($BB>$K2?$b%j(B $B%s%/$7$J$1$l$P(B)$B!#0[$J$C$?<B9T%U%!%$%kL>$K$7$F!":GE,2=%*%W%7%g%s$r$D$1$k$K(B $B$O!"(B <P> <BLOCKQUOTE><CODE> <PRE> $ g77 -O2 -o myprog myprog.f </PRE> </CODE></BLOCKQUOTE> $B$H$7$^$9!#(B <P>$B:GE,2=$K$OCm0U!*(B $B%7%9%F%`4IM}<T$K%3%s%Q%$%i$K$D$$$F$N%I%-%e%a%s%H$r0lFI$7$F$b$i$$!"LdBj$,$J$$$+$I$&$+3NG'$7$F$/$@$5$$!#(B <P>$B%5%V%k!<%A%s$r%3%s%Q%$%k$9$k$K$O!"(B <BLOCKQUOTE><CODE> <PRE> $ g77 -c mysub.f </PRE> </CODE></BLOCKQUOTE> <P>$B$H$9$l$P!"(B<CODE>mysub.o</CODE> $B$,@8@.$5$l$^$9!#$3$N%5%V%k!<%A%s$r%j%s%/$9$k$K$O!"(B <P> <BLOCKQUOTE><CODE> <PRE> $ g77 -o myprog myprog.f mysub.o </PRE> </CODE></BLOCKQUOTE> <P>$B$H$7$F$/$@$5$$!#(B <P>$B$?$/$5$s$N%5%V%k!<%A%s$,$"$C$F!"%i%$%V%i%j$K$^$H$a$?$$$J$i!"(B <BLOCKQUOTE><CODE> <PRE> $ cd subroutines/ $ cat *f >mylib.f ; g77 -c mylib.f </PRE> </CODE></BLOCKQUOTE> <P>$B$N$h$&$K$7$^$9!#(B <P>$B$3$l$G$"$J$?$N%W%m%0%i%`$K%j%s%/2DG=$J(B <CODE>mylib.o</CODE> $B$,@8@.$5$l$^$9!#(B $B:G8e$K!"30It%i%$%V%i%j(B <CODE>libdummy.so</CODE> $B$r%j%s%/$9$k$K$O!"(B <P> <BLOCKQUOTE><CODE> <PRE> $ g77 -o myprog myprog.f -ldummy </PRE> </CODE></BLOCKQUOTE> <P>$B$H$7$^$9!#(B <P><CODE>f2c</CODE> $B$r$*;}$A$J$i!"(B<CODE>g77</CODE> $B$NBX$o$j$K(B <CODE>f77</CODE> $B$+(B <CODE>fort77</CODE> $B$N$_$r;H$&$3$H$G$7$g$&!#(B <P>$B0J2<$G$O!"$5$i$K;H$$$d$9$$%W%m%0%i%_%s%0%D!<%k(B <CODE>make</CODE> $B$r>R2p$7$^$9!#(B <P> <H2><A NAME="ss5.2">5.2 <CODE>make</CODE> $B$N;H$$$+$?(B</A> </H2> <P>$B%f!<%F%#%j%F%#(B <CODE>make</CODE> $B$O!"J#?t$N%=!<%9%U%!%$%k$KJ,$+$l$?%W%m%0%i%`$N(B $B%3%s%Q%$%k$K;H$&%D!<%k$G$9!#(BVMS $B$G$N(B <CODE>MMS</CODE> $B$H(B <CODE>MMK</CODE> $B$KAjEv$7$^$9$,!"9=J8$O0[$J$C$F$$$^$9!#(B <P>$B%=!<%9%U%!%$%k(B <CODE>file_1.f , file_2.f , file_3.f</CODE> $B$H(B $B%a%$%s%W%m%0%i%`$N%=!<(B $B%9(B <CODE>myprog.f</CODE> $B$,$"$k$H$7$^$7$g$&!#$3$l$i$N%W%m%0%i%`$r<j:n6H$G%3%s%Q(B $B%$%k$9$k$H$J$k$H!"%=!<%9%U%!%$%k$N$I$l$+0l$D$rJQ99$7$?>l9g!"$=$l$H0MB84X(B $B78$K$"$k%U%!%$%k$,$I$l$+$r9M$($F!"0l$D0l$D:F%3%s%Q%$%k$7$J$1$l$P$J$j$^$;$s!#(B <P>$BF,$,JQ$K$J$kA0$K!V(B makefile $B!W$r:n$k$Y$-$G$9!#$3$l$O%=!<%9%U%!%$%kAj8_$N(B $B0MB84X78$r5-=R$7$?%F%-%9%H%U%!%$%k$G$9(B - $B%=!<%9$,JQ99$5$l$?$i!"JQ99$5$l$?%U%!(B $B%$%k$K0MB8$9$k%U%!%$%k$@$1$r:F%3%s%Q%$%k$7$F$/$l$^$9!#(B <P>$B2f!9$NNc$G$O!"$3$s$JIw$K(B makefile $B$r:n$j$^$9!#(B <P> <HR> <PRE> # makefile $B$NNc$G$9!#(B # <TAB> $B$H=q$$$F$"$k$H$3$m$G$O(B <TAB> $B%-!<$r2!$7$F$/$@$5$$!*(B # $BBg@Z$J$3$H$G$9!'%9%Z!<%9$O%@%a$G$9$h!#(B myprog: myprog.o file_1.o file_2.o file_3.o <TAB>g77 -o myprog myprog.o file_1.o file_2.o file_3.o # myprog $B$O;M$D$N%*%V%8%'%/%H%U%!%$%k$K0MB8$7$^$9!#(B myprog.o: myprog.f <TAB>g77 -c myprog.f # myprog.o $B$O$=$l<+?H$N%=!<%9%U%!%$%k$K0MB8$7$^$9!#(B file_1.o: file_1.f <TAB>g77 -c file_1.f # file_1.o $B$O$=$l<+?H$N%=!<%9%U%!%$%k$K0MB8$7$^$9!#(B file_2.o: file_2.f file_1.o <TAB>g77 -c file_2.f file_1.o # file_2.o $B$O$=$l<+?H$N%=!<%9%U%!%$%k$H%*%V%8%'%/%H%U%!%$%k$K0MB8$7$^$9!#(B file_3.o: file_3.f file_2.o <TAB>g77 -c file_3.f file_2.o # file_3.o $B$O$=$l<+?H$N%=!<%9%U%!%$%k$H%*%V%8%'%/%H%U%!%$%k$K0MB8$7$^$9!#(B # end of makefile. </PRE> <HR> <P>$B$3$l$r(B <CODE>Makefile</CODE> $B$NL>$GJ]B8$7!"(B<CODE>make</CODE> $B$H%?%$%W$9$l$P%3%s%Q%$%k$G$-$^$9!#(B $BBe$o$j$K!"%U%!%$%kL>$r(B <CODE>myprog.mak</CODE> $B$H$7$FJ]B8$7$?$J$i!"(B<CODE>make -f myprog.mak</CODE> $B$G%3%s%Q%$%k$G$-$^$9!#$b$A$m$s(B RMP($BLuCm!'(Bman $B%Z!<%8$r;2>H$N(B $B0U(B)$B!#(B <P> <H2><A NAME="ss5.3">5.3 $B%7%'%k%9%/%j%W%H(B</A> </H2> <P> <P>$B%7%'%k%9%/%j%W%H$O(B VMS $B%3%^%s%I%U%!%$%k$HF1$8$b$N$G$9$,!"$h$j6/NO$J9=J8$rHw$($F$$$^$9!#(B <P>$B%9%/%j%W%H$r=q$/$K$O!"$7$J$1$l$P$J$i$J$$$3$HA4$F$r%3%^%s%I$G5-=R$7$F!"I8=`(B $B$N(B ASCII $B%U%!%$%k$KJ]B8$7$^$9!#<B9T$G$-$k$h$&$K$9$k$?$a$K!"(B<CODE>chmod +x <$B%9%/%j%W%H%U%!%$%kL>(B></CODE> $B%3%^%s%I$r<B9T$7$F$*$$$F$/$@$5$$!#(B $B%9%/%j%W%H%U%!%$%kL>$r%?%$%W$9$l$P<B9T$G$-$^$9!#(B <P><CODE>bash</CODE> $B$G%9%/%j%W%H$r=q$/$K$O!"9-HO$J5!G=$rLVMe$7$?2r@bK\$,I,MW$K$J$k(B $B$N$G!"$"$^$j?<$/$O8@5Z$7$^$;$s!#$3$3$G$OB?>/Jq3gE*$G!"(B($BK>$`$i$/$O(B)$BLr$KN)$D%5%s%W%k$+$i4v$D$+$N4pK\E*$J%k!<%k$rFI$_$H$C$F$/$@$5$$!#(B <P> $B%5%s%W%k!'(Bsample.sh <HR> <PRE> #!/bin/sh # sample.sh # $B%3%a%s%H9T$G$9!#(B # $B:G=i$N9T$O>C$5$J$$$G!"I,$:$=$3$K$J$1$l$P$J$j$;$s!#(B echo "This system is: `uname -a`" # use the output of the commad echo "My name is $0" # built-in variables echo "You gave me the following $# parameters: "$* echo "First parameter is: "$1 echo -n "What's your name? " ; read your_name echo notice the difference: "hi $your_name" # quoting with " echo notice the difference: 'hi $your_name' # quoting with ' DIRS=0 ; FILES=0 for file in `ls .` ; do if [ -d ${file} ] ; then # if file is a directory DIRS=`expr $DIRS + 1` # this means DIRS = DIRS + 1 elif [ -f ${file} ] ; then FILES=`expr $FILES + 1` fi case ${file} in *.gif|*jpg) echo "${file}: graphic file" ;; *.txt|*.tex) echo "${file}: text file" ;; *.c|*.f|*.for) echo "${file}: source file" ;; *) echo "${file}: generic file" ;; esac done echo "there are ${DIRS} directories and ${FILES} files" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # exit code of last command echo "ZxY--!!!WKW not found" fi echo "enough... type 'man bash' if you want more info." </PRE> <HR> <P> <H2><A NAME="C"></A> <A NAME="ss5.4">5.4 C </A> </H2> <P> <P>Linux $B$O!"(BC $B$G%W%m%0%i%`$r3+H/$9$k$K$O$9$P$i$7$$4D6-$G$9!#(BC $B$K$D(B $B$$$F$O$4B8CN$@$H;W$$$^$9$N$G!"$3$3$G$O%,%$%I%i%$%s$K$D$$$F=R$Y$^$7$g$&!#(B $BDjHV$N(B <CODE>hello.c</CODE> $B$r(B Linux $B$N0lIt$H$b8@$($k(B <CODE>gcc</CODE> $B$G%3%s%Q%$%k$9$k$K$O!"(B <CODE>g77</CODE> $B$HF1$89=J8$r;H$$$^$9!#(B <P> <BLOCKQUOTE><CODE> <PRE> $ gcc -O2 -o hello hello.c </PRE> </CODE></BLOCKQUOTE> <P>$B%W%m%0%i%`$K%i%$%V%i%j$r%j%s%/$9$k$K$O!"%9%$%C%A(B <CODE>-l<libname></CODE> $B$r2C$($^$9!#Nc$($P!"?t3X%i%$%V%i%j$H:GE,(B $B2=%*%W%7%g%s$rIU$1$F%j%s%/$9$k$K$O!"(B <P> <BLOCKQUOTE><CODE> <PRE> $ gcc -O2 -o mathprog mathprog.c -lm </PRE> </CODE></BLOCKQUOTE> <P>$B$N$h$&$K$7$^$9!#(B <P>( <CODE>-l<libname></CODE> $B%9%$%C%A$O!"(B <CODE>/usr/lib/lib<libname>.a</CODE> $B$r0l=o$K%j%s%/$7$m$H$$$&$3$H$G!"(B $B=>$C$F(B <CODE>-lm</CODE> $B$O(B <CODE>/usr/lib/libm.a</CODE> $B$HF1$80UL#$K$J$j$^$9(B)$B!#(B <P>$B%W%m%0%i%`$,J#?t$N%U%!%$%k$+$i9=@.$5$l$k>l9g$O!"A0=R$7$?$h$&$K(B <CODE>make</CODE> $B%f!<%F%#%j%F%#$,I,MW$H$J$k$G$7$g$&!#EvA3!"(Bmakefile $B$K5-=R$5$l$?%=!<(B $B%9%U%!%$%k$H(B <CODE>gcc</CODE> $B$r;H$$$^$9!#(B <P>man $B%Z!<%8$N%;%/%7%g%s(B 3 $B$K5-:\$5$l$F$$$k(B C $B$N4X?t$K$D$$$F$N%X%k%W$r8F$S(B $B=P$9$3$H$,$G$-$^$9!#Nc$($P<!$N$h$&$K$7$^$9!#(B <P> <BLOCKQUOTE><CODE> <PRE> $ man 3 printf </PRE> </CODE></BLOCKQUOTE> <P>$B;HMQ2DG=$J%i%$%V%i%j$O;3$[$I$"$j$^$9$,!"Cf$G$b!"%F%-%9%H%b!<%I$G3F<o$N8z(B $B2L$r=P$9$?$a$N(B <CODE>ncurses</CODE> $B$H!"%0%i%U%#%C%/%9IA2hMQ$N(B <CODE>svgalib</CODE> $B$J$I(B $B$r:G=i$K;H$$$?$$$N$G$O$J$$$G$9$+!#(B <P> <HR> <A HREF="VMS-to-Linux-HOWTO-6.html">$B<!$N%Z!<%8(B</A> <A HREF="VMS-to-Linux-HOWTO-4.html">$BA0$N%Z!<%8(B</A> <A HREF="VMS-to-Linux-HOWTO.html#toc5">$BL\<!$X(B</A> </BODY> </HTML>