 make & Makefile. ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . make & Makefile . . Make School of Computer Wuhan University ©hfwang - 1/36 - ... . ... . ... . ... . . . . . . . . . make & Makefile .1 make & Makefile 程序的编写步骤 依赖关系图 工程管理与 make make 的工作原理 规则与依赖关系 通配符的使用 变量的定义和引用 自动变量 模式规则 Makefile 的结构 make 命令参数与选项 常见的错误 依赖关系的自动生成 Turbo C 的 make 与 make 相关的命令 参考文献 ©hfwang ... . ... . ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . make & Makefile . Free as in Freedom .GNU’s Not UNIX . . ©hfwang - 3/36 - ... . ... . ... . .0 码力 | 36 页 | 975.98 KB | 1 年前3 make & Makefile. ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . make & Makefile . . Make School of Computer Wuhan University ©hfwang - 1/36 - ... . ... . ... . ... . . . . . . . . . make & Makefile .1 make & Makefile 程序的编写步骤 依赖关系图 工程管理与 make make 的工作原理 规则与依赖关系 通配符的使用 变量的定义和引用 自动变量 模式规则 Makefile 的结构 make 命令参数与选项 常见的错误 依赖关系的自动生成 Turbo C 的 make 与 make 相关的命令 参考文献 ©hfwang ... . ... . ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . make & Makefile . Free as in Freedom .GNU’s Not UNIX . . ©hfwang - 3/36 - ... . ... . ... . .0 码力 | 36 页 | 975.98 KB | 1 年前3
 跟我一起写 Makefile (PDF 重制版)一个示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 make 是如何工作的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 makefile makefile 中使用变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 让 make 自动推导 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.6 makefile 环境变量 MAKEFILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.12 make 的工作方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 书写规则 130 码力 | 81 页 | 628.51 KB | 1 年前3 跟我一起写 Makefile (PDF 重制版)一个示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 make 是如何工作的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 makefile makefile 中使用变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 让 make 自动推导 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.6 makefile 环境变量 MAKEFILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.12 make 的工作方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 书写规则 130 码力 | 81 页 | 628.51 KB | 1 年前3
 Linux 下 Makefile 的 automake 生成全攻略1 Linux 下 Makefile 的 automake 生成 全攻略 作为 Linux 下的程序开发人员,大家一定都遇到过 Makefile,用 make 命令来编译自己写 的程序确实是很方便。一般情况下,大家都是手工写一个简单 Makefile,如果要想写出一 个符合自由软件惯例的 Makefile 就不那么容易了。 在本文中,将给大家介绍如何使用 autoconf 和 automake 两个工具来帮助我们自动生成 符 合 自 由 软件 惯 例 的 Makefile , 这 样 就 可以 象 常 见 的 GNU 程 序 一 样 ,只 要 使 用 “./configure”,“make”,“make install”就可以把程序安装到 Linux 系统中去了。 这特别适合想做开放源代码软件的程序开发人员,又或如果你只是自己写些小的 Toy 程序, 那么这个文章对你也会有很大的帮助。 介绍 Makefile 是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导 致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile 中记录有文件的信息, 在 make 时会决定在链接的时候需要重新编译哪些文件。 Makefile 的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依 赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应的模块。0 码力 | 14 页 | 701.04 KB | 1 年前3 Linux 下 Makefile 的 automake 生成全攻略1 Linux 下 Makefile 的 automake 生成 全攻略 作为 Linux 下的程序开发人员,大家一定都遇到过 Makefile,用 make 命令来编译自己写 的程序确实是很方便。一般情况下,大家都是手工写一个简单 Makefile,如果要想写出一 个符合自由软件惯例的 Makefile 就不那么容易了。 在本文中,将给大家介绍如何使用 autoconf 和 automake 两个工具来帮助我们自动生成 符 合 自 由 软件 惯 例 的 Makefile , 这 样 就 可以 象 常 见 的 GNU 程 序 一 样 ,只 要 使 用 “./configure”,“make”,“make install”就可以把程序安装到 Linux 系统中去了。 这特别适合想做开放源代码软件的程序开发人员,又或如果你只是自己写些小的 Toy 程序, 那么这个文章对你也会有很大的帮助。 介绍 Makefile 是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导 致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile 中记录有文件的信息, 在 make 时会决定在链接的时候需要重新编译哪些文件。 Makefile 的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依 赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应的模块。0 码力 | 14 页 | 701.04 KB | 1 年前3
 FISCO BCOS 2.3.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 式参考这里。 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 教程 本章将介绍使用FISCO0 码力 | 1227 页 | 10.79 MB | 1 年前3 FISCO BCOS 2.3.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 式参考这里。 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 教程 本章将介绍使用FISCO0 码力 | 1227 页 | 10.79 MB | 1 年前3
 FISCO BCOS 2.1.0 中文文档of gas时交易一直在交易池中不被处理的Bug [https://security.webank.com/report/freelink/871/cbb01ea45c9d2324c311f4f6fc1ec7ef] 不同组间可以用相同的交易二进制重放的Bug [https://security.webank.com/report/freelink/870/880c699de2f2d87bdf69c189d0ca42cd] contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 用方式参考这里。 2. 调用合约通过callByCNS命令,使用方式参考这里。 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb500360 码力 | 1058 页 | 740.85 KB | 1 年前3 FISCO BCOS 2.1.0 中文文档of gas时交易一直在交易池中不被处理的Bug [https://security.webank.com/report/freelink/871/cbb01ea45c9d2324c311f4f6fc1ec7ef] 不同组间可以用相同的交易二进制重放的Bug [https://security.webank.com/report/freelink/870/880c699de2f2d87bdf69c189d0ca42cd] contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 用方式参考这里。 2. 调用合约通过callByCNS命令,使用方式参考这里。 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb500360 码力 | 1058 页 | 740.85 KB | 1 年前3
 FISCO BCOS 2.4.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 式参考这里。 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 教程 本章将介绍使用FISCO0 码力 | 1314 页 | 11.21 MB | 1 年前3 FISCO BCOS 2.4.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 式参考这里。 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 教程 本章将介绍使用FISCO0 码力 | 1314 页 | 11.21 MB | 1 年前3
 FISCO BCOS 2.2.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 态已更改 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 2. 调用合约通过callByCNS命令,使用方式参考这里。0 码力 | 1156 页 | 10.03 MB | 1 年前3 FISCO BCOS 2.2.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 态已更改 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 2. 调用合约通过callByCNS命令,使用方式参考这里。0 码力 | 1156 页 | 10.03 MB | 1 年前3
 FISCO BCOS 2.5.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 式参考这里。 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 教程 本章将介绍使用FISCO0 码力 | 1456 页 | 13.35 MB | 1 年前3 FISCO BCOS 2.5.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" 0x21dca087cb3e44f44f9b882071ec6ecfcb50036 式参考这里。 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get Hello, FISCO BCOS # 退出控制台 [group:1]> quit 教程 本章将介绍使用FISCO0 码力 | 1456 页 | 13.35 MB | 1 年前3
 FISCO BCOS 2.6.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" transaction hash: 0x7e742c44091e0d6e4e1d 再次查看当前块高,块高增加表示已出块,账本状态已更改 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get WeBASE搭建 微众银行开源的自研区块链中间件平台——WeBASE(WeBank Blockchain Application0 码力 | 2383 页 | 18.83 MB | 1 年前3 FISCO BCOS 2.6.0 中文文档contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 # 查看当前块高 [group:1]> getBlockNumber 1 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 查看当前块高,块高不变,因为get接口不更改账本状态 [group:1]> getBlockNumber 1 # 调用set设置name [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" transaction hash: 0x7e742c44091e0d6e4e1d 再次查看当前块高,块高增加表示已出块,账本状态已更改 [group:1]> getBlockNumber 2 # 调用get接口获取name变量,检查设置是否生效 [group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get WeBASE搭建 微众银行开源的自研区块链中间件平台——WeBASE(WeBank Blockchain Application0 码力 | 2383 页 | 18.83 MB | 1 年前3
 【PyTorch深度学习-龙龙老师】-测试版2021123,实现如下: In [43]: from torch import nn # 导入神经网络子库 # 创建一层 Wx+b,输出节点为 3, 输出节点数为 4 fc = nn.Linear(3, 4) fc.bias # 查看偏置向量 Out[43]: Parameter containing: tensor([-0.3838, -0.4073, -0.3051, -0 个节点,输出 3 个节点的网络层,并通过全连接层的 kernel 成员名查 看其权值矩阵?: In [45]: # 定义全连接层的输出节点为 3, 输入节点为 4 fc = nn.Linear(4, 3) fc.weight # 查看权值矩阵 W Out[45]: Parameter containing: tensor([[-0.1410, 0.1454, -0.3955 创建全连接层,指定输入节点数和输出节点数 fc = nn.Linear(28*28, 512) # 通过 fc 类实例完成一次全连接层的计算,返回输出张量 h1 = fc(x) print('h1:', h1.shape) Out[2]: h1: torch.Size([4, 512]) 预览版202112 6.2 全连接层 5 上述通过一行代码即可以创建一层全连接层实例 fc,并指定输入节点数为0 码力 | 439 页 | 29.91 MB | 1 年前3 【PyTorch深度学习-龙龙老师】-测试版2021123,实现如下: In [43]: from torch import nn # 导入神经网络子库 # 创建一层 Wx+b,输出节点为 3, 输出节点数为 4 fc = nn.Linear(3, 4) fc.bias # 查看偏置向量 Out[43]: Parameter containing: tensor([-0.3838, -0.4073, -0.3051, -0 个节点,输出 3 个节点的网络层,并通过全连接层的 kernel 成员名查 看其权值矩阵?: In [45]: # 定义全连接层的输出节点为 3, 输入节点为 4 fc = nn.Linear(4, 3) fc.weight # 查看权值矩阵 W Out[45]: Parameter containing: tensor([[-0.1410, 0.1454, -0.3955 创建全连接层,指定输入节点数和输出节点数 fc = nn.Linear(28*28, 512) # 通过 fc 类实例完成一次全连接层的计算,返回输出张量 h1 = fc(x) print('h1:', h1.shape) Out[2]: h1: torch.Size([4, 512]) 预览版202112 6.2 全连接层 5 上述通过一行代码即可以创建一层全连接层实例 fc,并指定输入节点数为0 码力 | 439 页 | 29.91 MB | 1 年前3
共 526 条
- 1
- 2
- 3
- 4
- 5
- 6
- 53














 
  
 