zoukankan      html  css  js  c++  java
  • 在Ubuntu下使用 csapp.h 和 csapp.c


    >它山之石可以攻玉。

    对于《深入理解计算机系统》这本神人写就的神书, 我等凡人就不评论什么啦。

    这本书的 第二,三 部分, 真的真的对我理解操作系统有很大的帮助。 (第一部分偏硬件,如果搞高性能,第一部分还是蛮重要的) 。 第一部分的的确确有些艰深, 从剖析汇编码, 窥探机器码, 到 理论上造CPU, 虽然作者(布赖恩特)讲的十分清楚, 但是仍然无法弥补我智商上的先天缺陷(俗称:脑残)。

    书中的内容真的是很丰富。 我觉得也正是书中的内容太多, 知识点太多, 所以很难完全读懂。 因为, 这本书很厚, 你读着读着前面的东西就忘得七七八八啦, 读着读着就不知所云啦, 读着读着就读出智商缺陷啦。 书中的内容虽然很多, 很全面, 但是又都很有必要, 都很经典, 很精准 ------ 这也许就是 神人布赖恩特的神奇之处。

    看了这本书后, 才深切的理解到: 这么复杂的东西竟然是人类发明的, 好神奇!

    没办法, 说好的不评论什么的, 还是无耻的写了一堆废话。 ------ 唉, 没办法, 神书就是有这样的魔力。



    csapp.h 是这本书中的一个头文件。 Linux本身不带有这个文件,这个文件是作者编写的。 它整合的好多其他的头文件, 所以有了它就没必要再写那么多头文件啦。

    下载地址: http://csapp.cs.cmu.edu/public/code.html



    Ubuntu(我的是Ubuntu14.04)中使用方法: * 首先下载 csapp.h 和 csapp.c ####方法一 编译链接csapp.h: 1.我的当前工作目录为~/WorkSpace,目录下有3个文件,fork.c, csapp.h, csapp.c。

    2.编译csapp.c文件,命令为gcc -c csapp.c,生成目标文件csapp.o。

    3.编译fork.c文件,命令为gcc -c fork.c,生成目标文件fork.o。

    4.链接目标文件csapp.o、fork.o(由于csapp.c文件中有关于线程中部分,gcc编译的时候必须带 -lpthread,否则会出现一堆错误),命令为
    gcc -o fork csapp.o inet_aton.o -lpthread,生成可执行文件fork,然后 ./fork 运行即可。



    方法二

    把csapp.h 放到gcc的头文件文件夹中。 
    

    1.把csapp.h csapp.c文件放到/usr/include(看的别人的方法是放到/usr/lib下, 我试了试, 不可以啊 V_V||).

    2.在csapp.h里面最后一行#end if之前添加:
    #include <csapp.c>
    (记住: 这里#include<csapp.c> 一定要写在接近文件结尾的地方, 即: 所有函数的声明的后面, #end if 之前。如果写在文件开始也是会有一堆错误出现的)

    3.csapp.c文件中有关于线程中部分,gcc编译的时候必须带 -lpthread,否则会出错的。

    4.在要编译的文件头添加#include <csapp.h>

    5具体的指令如下:gcc -o fork fork.c -lpthread
    然后运行: ./fork



    gcc常用选项: http://blog.csdn.net/max__payne/article/details/2058898




  • 相关阅读:
    241. Different Ways to Add Parentheses java solutions
    89. Gray Code java solutions
    367. Valid Perfect Square java solutions
    46. Permutations java solutions
    116. Populating Next Right Pointers in Each Node java solutions
    153. Find Minimum in Rotated Sorted Array java solutions
    判断两颗树是否相同
    求二叉树叶子节点的个数
    求二叉树第k层的结点个数
    将二叉排序树转换成排序的双向链表
  • 原文地址:https://www.cnblogs.com/acm1314/p/5623562.html
Copyright © 2011-2022 走看看