ubuntu下boost编译安装

boost

安装

最近加班好累a…题外话哈

学到封装就会想到访问修饰符,说到访问修饰符,就会想到访问等级,或者说是访问能力的大小。当然也少不了默认的访问类型。

1.依赖安装

  1. apt-get
    install mpi-default-dev libicu-dev python-dev python3-dev libbz2-dev zlib1g-dev 


枚举不用多说,介绍下扩展方法:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。[当然是从msdn拷贝的咯,详情请见~]

  1. C# 方法默认访问级别 : private
    (私有的) 
  2. C# 类默认访问级别 : internal   
    (内部的) 

2.访问boost官网下载boost最新版本

扩展方法需定义在静态类中,并且方法本身也应声明为静态的,第一个参数指定该方法作用于哪个类型,并且该参数以 this澳门微尼斯人手机版, 修饰符为前缀。注意,与接口或类方法具有相同名称和签名的扩展方法永远不会被调用。

封装 被定义为”把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

3.解压下载文件,例如下载文件在~/Downloads下

  1. cd ~/Downloads 


  2. tar –bzip2 -xvf boost_1_58_0.tar.bz2 


举个栗子:

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象

4.准备安装

  1. cd
    boost_1_58 


  2. ./bootstrap.sh 


生成文件b2和bjam计算md5sum发现二者一致
生成bjam,上述命令可以带有各种选项,具体可参考帮助文档: ./bootstrap.sh
–help。其中–prefix参数,可以指定安装路径,如果不带–prefix参数的话(推荐),默认路径是
/usr/local/include 和
/usr/local/lib,分别存放头文件和各种库。执行完成后,会生成bjam,已经存在的脚本将会被自动备份。注意,boost
1.49会在当前目录下,生成两个文件bjam和b2,这两个是一样的,

 1     public enum EnumWeekday
 2     {
      
       None,  // 不好意思,强行植入None,记住它会有用的

 3         Monday,
 4 
 5         TuesDay,
 6 
 7         星期三,    // Unicode就是这么自信
 8 
 9         Thursday,
10 
11         Friday,
12     }
13 
14     // 第二个方法不是扩展方法,一般只将扩展方法放在一个类中
15     // 当然可以将其声明为扩展方法,但不建议
16     static class ExternFunc
17     {
18         /// <summary>
19         /// EnumWeekday枚举的扩展方法
20         /// </summary>
21         public static string ToChinese(this EnumWeekday day)
22         {
23             switch (day)
24             {
25                 case EnumWeekday.Monday:
26                     return "星期一";
27 
28                 case EnumWeekday.TuesDay:
29                     return "星期二";
30 
31                 default:
32                     return day.ToString();
33             }
34         }
35 
36         /// <summary>
37         /// 字符串转枚举
38         /// </summary>
39         public static EnumWeekday String2EnumWeekday(string day)
40         {
41             switch (day)
42             {
43                 case "星期一":
44                     return EnumWeekday.Monday;
45 
46                 default:
47                     return EnumWeekday.Friday;  // 皮一下,反正周末还不是要加班-_-
48             }
49         }
50     }

C#
封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。

5.编译并安装boost

编译完成后,进行安装,也就是将头文件和生成的库,放到指定的路径(–prefix)下

  1. ./b2  //编译boost 


  2. sudo ./b2 install
    //将生成的库安装到/usr/local/lib目录下面,默认的头文件在/usr/local/include/boost目录下边。 


上面已介绍,像实例方法一样调用扩展方法就欧克了–EnumWeekday friday =
EnumWeekday.Friday; Debug.WriteLine(“今天是{0}”, friday.ToChinese());

一个 访问修饰符 定义了一个类成员的范围和可见性。C#
支持的访问修饰符如下所示:

发表评论

电子邮件地址不会被公开。 必填项已用*标注