当前位置:  技术问答>linux和unix

编译《UNIX环境高级编程2》源代码的问题

    来源: 互联网  发布时间:2015-11-18

    本文导语:  键入make后,出现信息如下: make `./systype.sh` /bin/sh: ./systype.sh: Permission denied make[1]: Entering directory `/home/lizl/apue2/apue.2e' make `./systype.sh` /bin/sh: ./systype.sh: Permission denied make[2]: Entering directory `/home/lizl/apue2/apue.2e' m...

键入make后,出现信息如下:
make `./systype.sh`
/bin/sh: ./systype.sh: Permission denied
make[1]: Entering directory `/home/lizl/apue2/apue.2e'
make `./systype.sh`
/bin/sh: ./systype.sh: Permission denied
make[2]: Entering directory `/home/lizl/apue2/apue.2e'
make `./systype.sh`
/bin/sh: ./systype.sh: Permission denied
make[3]: Entering directory `/home/lizl/apue2/apue.2e'
make `./systype.sh`
/bin/sh: ./systype.sh: Permission denied
make[4]: Entering directory `/home/lizl/apue2/apue.2e'
make `./systype.sh`
/bin/sh: ./systype.sh: Permission denied
make[5]: Entering directory `/home/lizl/apue2/apue.2e'
make `./systype.sh`
/bin/sh: ./systype.sh: Permission denied
make[6]: Entering directory `/home/lizl/apue2/apue.2e'
make `./systype.sh`
/bin/sh: ./systype.sh: Permission denied
上面是一部分,为什么说Permission denied?

|
没有执行权限吧

|
chmod +x systype.sh

|
读一下源码包中的README吧,你需要整体make一次,对于一些静态库需要安装。

Source Files
------------

All the source files (including this file) assume tab stops every
4 positions, not every 8 (the default).  Just ":set tabstop=4" in vi,
for example.  Yo no habla emacs, but I'm sure its doable in emacs.

What to do
----------

0. Read this entire file.  Read the "DISCLAIMER" file.

1. If you're using either SunOS 4.1.x, SVR4, or BSD/386, copy one of the
files "Make.def.sun", "Make.def.svr4", or "Make.def.44" into the file
"Make.defines".  This file ("Make.defines") is included by all the
Makefiles in the individual directories.  Edit "Make.defines" as
appropriate for your system.  Note that *YOU MUST MODIFY* "Make.defines"
with the pathname of the "libmisc.a" library, any special compiler
flags, etc.

If you aren't using one of these three systems, start with one of these
three "Make.def.*" files and edit is as appropriate.  I am interested
in receiving any new versions of this file for additional Unix systems,
as long as I can include them in future releases of this tar distribution.

2. If you're using either SunOS 4.1.x, SVR4, or BSD/386, go into one of
the directories "lib.sun", "lib.svr4", or "lib.44" and type "make" or
"gmake".  (Be sure to read the rest of this file first.)  This makes
the library "libmisc.a" that almost every other program requires.
This is where the error functions from Appendix B.2 reside, for example.

Note that 90% of the files in these three lib directories are just
hard links to each other, as the source file is identical between
the three systems.

If you aren't using one of these three systems, pick the directory that
is closest to your system, and modify as required ...  The files with a
link count of 1 (i.e., those that differ between the three different
systems) will probably require the most work to port to other systems.
Note also that the file "systype.sh" is used by the Makefile in these
lib directories to try and determine which system we're on.  You almost
certainly need to modify this shell script also.

3. The file "Sourcefiles" lists which source file corresponds to each
Program in the book.  Go into the desired directory and make whatever
program you want.  There is not a master Makefile that make's everything.

4. Each Makefile may contain entries for programs other than those that
are distributed in this source release.  These are probably for small
test programs that I wrote while writing the book.  Since these programs
aren't in the book, and since it would take too much time to go through
and figure out what each one does and document it adequately, they are
not in this release.

5. Please let me know of any generic problems you encounter.  I may be able
to answer questions if you're having problems, but questions of the form
"what does it take to compile X under FOOix" I probably can't answer,
since I don't have access (and time) to try all these programs under
every Unix system in existence.

Using make
----------

Each directory with source code has a Makefile in it.  Each Makefile
includes "../Make.defines".  Unfortunately on all three systems the make
program is a little different:

- Under SunOS I use "make", although GNU make also seems to work.

- Under SVR4 I use "make".  I've never gotten GNU make to compile
  correctly under SVR4.  Fortunately the vanilla SVR4 make is OK.

- Under BSD/386 I use GNU make.  The standard BSD make is quite different
  and would require that the include line at the beginning of every
  Makefile be different.  (Guy Harris posted patches to the BSD make
  that let it handle "normal" include lines, to one of the Usenet
  newsgroups in May 1992.)

POSIX.1 Compatibility
---------------------

Be aware that *none* of the systems used (SVR4, 386BSD, SunOS 4.1.2)
is POSIX.1-1990 compatible--they all conform to the earlier 1988 POSIX.1
spec.  This means that you will get some compiler warnings for some of
the files.  The main difference between the two is that the 1990 POSIX.1
standard introduced the ssize_t return value for read and write.  The
SVR4 function prototypes in  still say "int write(...)".

*YOU WILL ALMOST CERTAINLY* get a compiler error on the "ourhdr.h"
file the first time you try and compile anything, unless your system
supports the ssize_t primitive system data type that appeared with the
1990 POSIX.1 standard.  I've just added the typdef of ssize_t to the
appropriate headers on my systems.  Without root privilege you need
another solution.  The easiest solution might be to typedef ssize_t
in "ourhdr.h" to be an int.

C Compilers
-----------

The only ANSI C compilers that I've compiled these programs under
are GNU C (Versions 1.39 and 1.40) under SunOS and BSD/386, and the SVR4
Standard C Development Environment 5.0.  I have not tried Sun's ANSI C
compiler (acc) on the Sparc.

|
dos2unix systype.sh

将systype.sh的文件格式变为 unix format

    
 
 

您可能感兴趣的文章:

  • 谁能告诉我早期LINUX内核的源代码和C编译器的源代码,哪能找到!谢谢!要多少分都给!
  • 刚下载一个内核源代码,怎样将它编译出来,然后安装运行呢?
  • 如何重新编译修改后的Linux内核源代码?
  • 二进制安装和源代码编译安装,有什么区别?
  • 求JAVA编译器的源代码!
  • Linux系统中有编译汇编源代码的工具吗?
  • 请问那里有c语言的编译器源代码啊?
  • fc-6 中编译源代码 ./configure 时 gtk-config 问题
  • Dnrd 源代码如何编译,如何使用?
  • 谁能给一个gdb远程调试的源代码或编译好的工具下载
  • 如何编译内核源代码中的某一模块?
  • 请问怎样在kdevelop中编译qt源代码?
  • 请问,哪里有Linux源代码下载?哪里有GNC C编译器下载?
  • editplus怎么配置才能直接编译java的源代码?
  • 哪位大哥编译过MGCP协议的源代码?
  • 用 gcc 编译带有 epoll_create 的源代码时,需要带上什么 lib 呢??谢谢!!
  • ping的源代码怎么编译
  • Unix环境高级编程 源代码编译
  • windows下写的源代码,其中有打印中文语句,移到linux编译后运行中文显示乱码了
  • 如何把一个目录以及所有子目录下面的所有java源代码文件通过命令一次全部编译。分太多了,问题解决后绝对给分。
  • Linux下使用openssl api编程socket编程,为什么要编译啊?
  • Linux下怎么搭建QT的环境,QT编程有没IDE?要用QT编程是不是得先编译QT环境?
  • unix环境高级编程》源程序编译的讨论,编译成功、不成功的都请进!!!
  • 编译型编程语言 eC
  • liunx编程,反编译
  • 在Linux下编程有什么编译器可以用啊?
  • linux otl 编译 C++ 数据库编程 急急急急急急急急急急
  • 刚学Kdevelop编程,有关编译的问题想问。
  • 请问:有谁编译过steven的《unix环境高级编程》的源码吗?
  • QT4编程 编译执行的时候一闪而过
  • <<unix环境变量高级编程>>程序例题4-7编译遇到问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 请教:JSP编译器编译成字节码,跟别的编译器编译出来的有什么不同呢?
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • 编译GCC时能不能只编译C/C++的编译器?
  • 高速的网络抓包库PF_ring介绍及编译安装
  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • JB下,我的程序编译得好慢!请问用什么方法编译才可以快一点?或编译顺序改变一下?
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • 用JCreator写了一个小程序,有十几个class,当修改某个文件重新编译,javac并没有编译修改的文件,请问要如何做javac才会重新编译所有的
  • 如何编译内核源代码中的某一模块? iis7站长之家
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 在cygwin编译驱动程序要不要交叉编译?
  • 关于如何把编译进内核的编译成模块
  • C编译器 c++编译器 wieldylcc
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • 编译失败后如何再继续编译
  • 编译qt-x11,最后编译生成可执行文件时候,make出错
  • 如何查看已编译安装软件的编译命令行
  • 请问哪里有反编译.class文件的反编译器?
  • 用Jdk编译时出现提示要加 -deprecation 再编译,请教??


  • 站内导航:


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

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

    浙ICP备11055608号-3