搜档网
当前位置:搜档网 › 编译libtorrent.lib篇

编译libtorrent.lib篇

编译libtorrent.lib篇
编译libtorrent.lib篇

BT的编译测试全过程

为了进行libtorrent.lib的编译,首先我们需要搭建起基本的编译环境,由于libtorrent.lib 在编译时需要调用openssl里面的某些内容,所以第一步需要将openssl编译出来。其次,我们编译libtorrent.lib的目的是为了调用它,利用其源码中的client_test.cpp的例子,来进行bt下载,而client_test.cpp在编译后链接的过程中需要调用到boost中的某些lib文件,所以在之后必须对boost编译。

注:本项目中,我们在vs2008的环境下进行编译,选用的各源程序版本如下:

(1)请参考openssl编译部分,完成openssl的编译。

(2)请参考boost编译部分,完成boost的编译。

(3)进行libtorrent.lib的编译

i.首先在VS2008的环境下新建一个空的lib项目(不包含预编译项),将如下目录中的相关源文件导入(方法:解决方案—源文件—右键添加现有项)。

$(SolutionDir)\libtorrent-rasterbar-0.14.4\src (导入该目录下所有的.cpp文件,不包括Makefile.in,Makefile.am文件)

$(SolutionDir)\libtorrent-rasterbar-0.14.4\zlib (导入该目录下所有的.c文件)$(SolutionDir)\libtorrent-rasterbar-0.14.4\src\kademlia (导入该目录下所有的.cpp文件不包括Makefile.in,Makefile.am文件)

ii.将项目中所有#include的头文件目录包含到工程中(方法:项目—属性—C\C++--常规—附加包含路径),具体有如下四个目录:

$(SolutionDir)\ openssl-0.9.8a\include

$(SolutionDir)\libtorrent-rasterbar-0.14.4\zlib

$(SolutionDir)\libtorrent-rasterbar-0.14.4\include

$(SolutionDir)\boost_1_39_0

iii.为该项目添加预处理器项(项目中原本有的预处理器项WIN32、_DEBUG、_LIB不变)WIN32_LEAN_AND_MEAN

_WIN32_WINNT=0x0501

__USE_W32_SOCKETS

TORRENT_LOGGING

TORRENT_VERBOSE_LOGGING

TORRENT_STORAGE_DEBUG

TORRENT_UPNP_LOGGING

TORRENT_DISK_STATS

TORRENT_STA TS

TORRENT_DHT_VERBOSE_LOGGING

TORRENT_VERBOSE_BANDWIDTH_LIMIT

TORRENT_USE_OPENSSL

UNICODE

_UNICODE

CMAKE_INTDIR=\"Debug\"

iv.编译--生成解决方案,生成成功。生成的是debug版本的libtorrent.lib,位于(OutDir)\

目录下。

附加内容:有网友提示,如果编译dll版本的话,需要添加TORRENT_BUILDING_SHARED 的预处理项,然后添加引用的lib:

libboost_date_time-vc90-mt.lib

libboost_filesystem-vc90-mt.lib

libboost_system-vc90-mt.lib

libboost_thread-vc90-mt.lib

不过本人从没有进行dll版本的编译,也没有添加这里提到的四个lib文件和预处理项。

(4)到此为止,我们已经编译了openssl、boost、libtorrent.lib三项,下面我们需要利用libtorrent自带的client_test.cpp的源程序,新建控制台工程,测试libtorrent.lib的可用性。那么我们先就进行client_test.cpp的编译。

i.在vs2008环境下,新建一个空的控制台程序,命名为client_test_ctr,并将libtorrent 源码中examp目录下的client_test.cpp程序作为源文件导入。(方法:解决方案—源文件—右键添加现有项)。

ii. 将client_test.cpp中所有#include的头文件目录包含到工程中(方法:项目—属性—C\C++--常规—附加包含路径),具体有如下三个目录:

$(SolutionDir)\libtorrent-rasterbar-0.14.4\zlib

$(SolutionDir)\libtorrent-rasterbar-0.14.4\include

$(SolutionDir)\boost_1_39_0

iii.为该项目添加预处理器项(项目中原本有的预处理器项WIN32、_DEBUG、_ CONSOLE 不变)

TORRENT_LOGGING

TORRENT_VERBOSE_LOGGING

iv.为该项目添加链接器附录库以及对应的库文件所在目录

添加方法:

libfilename:项目-属性—链接器—常规—附加库目录

libfilepath:项目-属性—链接器—输入—附加依赖项

v. 编译--生成解决方案,生成成功。生成的是debug版本的client_test_ctr.exe程序,位于(OutDir)\目录下。

vi.测试生成的client_test_ctr.exe的可用性。

在client_test.cpp文件中,我们可以发现main(int ac,char[] av),这说明程序是在命令行模式下运行的。具体运行命令如下:

supported options:

-h [ --help ] display this help message

-p [ --port ] arg (=6881) set listening port

-r [ --ratio ] arg (=0) set the preferred upload/download ratio.

0 means infinite. Values smaller than 1

are clamped to 1.

-d [ --max-download-rate ] arg (=0) the maximum download rate given in kB/s.

0 means infinite.

-u [ --max-upload-rate ] arg (=0) the maximum upload rate given in kB/s. 0

means infinite.

--max-torrent-upload-rate arg (=20) the maximum upload rate for an individua

l torrent, given in kB/s. 0 means infini

te.

--max-torrent-download-rate arg (=0) the maximum download rate for an individ

ual torrent, given in kB/s. 0 means infi

nite.

--max-upload-slots arg (=5) the maximum number of upload slots. 0 me

ans infinite.

-s [ --save-path ] arg (=./) the path where the downloaded file/folde

r should be placed.

-l [ --log-level ] arg (=info) sets the level at which events are logge

d [debug | info | warning | fatal].

-f [ --log-file ] arg sets a file to log all events to

-f [ --ip-filter ] arg sets the path to the ip-filter file used

to block access from certain ips.

-a [ --allocation-mode ] arg (=full) sets mode used for allocating the downlo

aded files on disk. Possible options are

[full | compact]

-i [ --input-file ] arg adds an input .torrent file. At least on

e is required. arguments without any fla

g are implicitly an input file. To start

a torrentless download, use @

instead of specifying a fi

le.

-m [ --monitor-dir ] arg monitors the given directory, looking fo

r .torrent files and automatically start

s downloading them. It will stop downloa

ding torrent files that are removed from

the directory

-t [ --poll-interval ] arg (=2) if a directory is being monitored, this

is the interval (given in seconds) betwe

en two refreshes of the directory listin

g

-w [ --wait-retry ] arg (=30) if the download of a url seed failes, th

is is the interval (given in seconds) to

wait until the next retry

-o [ --half-open-limit ] arg (=-1) Sets the maximum number of simultaneous

half-open tcp connections

-b [ --bind ] arg Sets the local interface to bind outboun

d and th

e listen socket to

-x [ --proxy-server ] arg Sets the http proxy to be used for track

er and web seeds connections. The string

is expected to be on the form:

>:. If no port is specified, 8080

is assumed

-n [ --proxy-login ] arg Sets the username and password used to a

uthenticate with the http proxy. The str

ing should be given in the form:

me>:

--proxy-type arg (=socks5) Sets the type of proxy to use [socks5 |

http]

--bind-port-start arg (=0) The lower port number that outgoing conn

ections will be bound to

--bind-port-end arg (=0) The upper port number that outgoing conn

ections will be bound to

vii.利用client_test_ctr.exe来下载文件,从命令行模式启动程序,进入到client_test_ctr.exe 所在的目录中,运行client_test_ctr.exe –i **.torrent,此后命令行界面会自动切换,进入到下载模式,在下载的过程中可以按下其他键以实现顺序下载、暂停继续、退出等功能,所有过程截图如下。

功能功能键

顺序下载s

暂停继续p

退出q

下载界面截图

暂停界面截图

退出界面截图

编译实验报告+源代码

课程设计报告 ( 2013-- 2014年度第1学期) 名称:编译技术课程设计B 题目:简单编译程序的设计与实现院系:计算机系 班级:XXX 学号:XXX 学生姓名:XXX 指导教师:XXX 设计周数:XXX 成绩: 日期:XX 年XX 月

实验一.词法分析器的设计与实现 一、课程设计(综合实验)的目的与要求 1.1 词法分析器设计的实验目的 本实验是为计算机科学与技术专业的学生在学习《编译技术》课程后,为加深对课堂教学内容的理解,培养解决实际问题能力而设置的实践环节。通过这个实验,使学生应用编译程序设计的原理和技术设计出词法分析器,了解扫描器的组成结构,不同种类单词的识别方法。能使得学生在设计和调试编译程序的能力方面有所提高。为将来设计、分析编译程序打下良好的基础。 1.2 词法分析器设计的实验要求 设计一个扫描器,该扫描器是一个子程序,其输入是源程序字符串,每调用一次识别并输出一个单词符号。为了避免超前搜索,提高运行效率,简化扫描器的设计,假设该程序设计语言中,基本字(也称关键词)不能做一般标识符用,如果基本字、标识符和常数之间没有确定的运算符或界符作间隔,则用空白作间隔。 单词符号及其内部表示如表1-1所示,单词符号中标识符由一个字母后跟多个字母、数字组成,常数由多个十进制数字组成。单词符号的内部表示,即单词的输出形式为二元式:(种别编码,单词的属性值)。 表1-1 单词符号及其内部表示

二、设计(实验)正文 1.词法分析器流程图 2.词法分析器设计程序代码 // first.cpp : 定义控制台应用程序的入口点。// #include"stdafx.h" #include #include using namespace std; int what(char a) { if((int(a)>=48)&&(int(a)<=57)) {

最新东南大学微机试卷-期末-AB

东南大学考试卷 考试科目微机系统与接口考试形式闭卷试卷类型 B卷 考试时间长度120分钟共 5 页得分 一、填空或选择填空(35分) 1. 8086/8088段寄存器的功能是_____________, 某一时刻程序最多可以指定访问________个存储段。 A1.用于计算有效地址B1. 用于存放段起始地址及计算物理地址 C1.分段兼容8080/8085指令D1. 方便分段执行各种数据传送操作 A2. 3 B2. 4 C2. 6D2. 64K E2.初始化时程序指定 2.8086/8088系统中复位信号RESET的作用是使_______ A. 处理器总线休眠 B.处理器总线清零 C. 处理器和协处理器工作同步 D. MPU恢复到机器的起始状态并重新启动 3. 在默认情况下, ADD [DI+100], DI指令中目标操作数存放在______寄存器指定的存储段中,指令执行时将完成______ 个总线操作周期。 A1. CS B1. DS C1. ES D1. SS A2. 0 B2. 1 C2. 2 D2. 3 4. 8086/8088CPU用指令ADD对两个8位二进制数进行加法运算后,结果为14H,且标志位CF=1,OF=1,SF=0,此结果对应的十进制无符号数应为_____ A. 20 B. –20 C. –236 D.276 5.堆栈是内存中的一个专用区域,其一般存取规则是_________ A.先入先出(FIFO) B.先入后出(FILO) C.按字节顺序访问 D.只能利用PUSH/POP指令读写 6. 在下列指令中,使堆栈指针变化8字节的指令是_____. A. PUSHA B. CALL 4000:0008H C. RET 8 D.SUB SP,8

东南大学编译原理试题

东南大学一九九三年攻读硕士学位研究生入学考试试题 试题编号:553 试题名称:编译原理 一:(15分)判断下列命题的真假,并简述理由: 1.文法G的一个句子对应于多个推导,则G是二义的. 2.LL(1)分析必须对原有文法提取左因子和消除左递归. 3.算符优先分析法采用"移近-归约"技术,其归约过程是规范的. 4.文法S→aA;A→Ab;A→b是LR(0)文法(S为文法的开始符号). 5.一个BASIC解释程序和编译程序的不同在于,解释程序由语法制导翻译成目标代码并立即执行之,而编译程序需产生中间代码及优化. 二:(15分)设计一个最小状态有穷自动机,识别由下列子串组成的任意字符串. GO,GOTO,TOO,ON 例如:GOTOONGOTOOGOON是合法字符串. 三:(15分)构造一个LL(1)文法G,识别语言L: L={ω|ω为{0,1}上不包括两个相邻的1的非空串} 并证明你的结论. 四:(20分)设有一台单累加器计算机,并汇编语言含有通常的汇编指令LOAD,STORE,ADD和MUL. 1.写一个递归下降分析程序,将如下文法所定义的赋值语句翻译成汇编语言: A→i:=E E→E+E|E*E|(E)|i 2.利用加,乘法满足交换率这一性质,改进你的分析程序,以期产生比较高效的目标代码. 五:(15分)C为大家熟知的程序语言. 1.C的参数传递采用传值的方式,而且允许函数定义和调用时的参数个数不一致(如printf).请指出其函数调用语句: f(arg1,arg2,...,argn) 翻译成的中间代码序列,并简述其含义. 2.C语言中的变量具有不同的作用范围,试述C应采用的存储分配策略. 六:(20分)设有一个子程序的四元式序列为: (1) I:=1 (2) if I>20 GOTO (16) (3) T1:=2*J (4) T2:=20*I (5) T3:=T1+T2 (6) T4:=addr(A)-22 (7) T5:=2*I (8) T6:=T5*20 (9) T7:=2*J (10) T8:=T6+T7 (11) T9:=addr(A)-22 (12) T10:=T9[T8] (13) T4[T3]:=T10+J

linux实验报告3 Linux上C程序编译,调试和工程文件管理

深圳大学实验报告 课程名称:Linux操作系统 实验项目名称:Linux上C程序编译,调试和工程文件管理学院:计算机与软件学院 专业:软件工程 指导教师:冯禹洪 报告人:文成学号:2011150259 班级:02 实验时间:2013/12/31 实验报告提交时间:2013/12/31 教务处制

一、实验目标: 熟悉Linux上C程序设计环境,包括以下内容: 1. 联机帮助man命令 2. 编译工具gcc的使用 3. 熟悉使用gdb来调试程序 4. 熟悉C工程文件的管理工具makefile 二、实验环境与工件 湖边Linux实验室 Fedora 13 三、实验内容与步骤 1.动态库函数可以在多个应用程序之间共享,可以减少应用程序文件的容量和 应用程序的装载时间。因此,熟悉构建动态库可以提高软件的编写质量。请跟随以下步骤构建动态库message,并用其编写程序、编译和运行。(40分) 1.1编写源程序message.c(见图1)和main.c(见图2) 图1. message.c源程序 图2.main.c源程序 1.2用以下命令对message.c进行编译,其中,“-fPIC”选项是告诉gcc产生的 代码不要包含对函数和变量具体内存位置的引用。

1.3以上命令将获得目标文件message.o,使用以下命令建立共享函数库 message: 1.4使用1.3获得的共享函数库来编译main.c文件 1.5设置共享函数库搜索路径 1.6运行程序并附上结果 1.7构建静态可执行程序 1.7.1$gcc –c message.c 1.7.2$ar –crv libmsg.a message.o 1.7.3$gcc –o main main.c –L./ -lmsg 1.7.4$./main 1.8运行以下两个命令并截图说明结果: $ldd goodbye $ldd main $ls –l goodbye main /*附加题:经观察,如果用ubuntu, main 和googbye的大小在一些发行版本下没有区别,如果实验如此,请尝试解释这一现象。附加题目,平时成绩+5分,超过40分不算。*/ 2.图3-4中的reverse程序是有bug的,请使用gdb去观察程序的行为,对关键 行为截图说明,定位错误(截图说明)并修正程序bug。附上修正的程序及其运行结果。(40分) 图3. reverse.h头文件

东南大学信号与系统试题含答案

东 南 大 学 考 试 卷(A 、B 卷) (答案附后) 课程名称 信号与线性系统 考试学期 03-04-3 得分 适用专业 四系,十一系 考试形式 闭卷 考试时间长度 120分钟 一、简单计算题(每题8分): 1、 已知某连续信号()f t 的傅里叶变换为 21 ()23F j j ωωω= -+,按照取 样间隔1T =对其进行取样得到离散时间序列()f k ,序列()f k 的Z 变换。 2、 求序列{} 10()1,2,1 k f k ==和2()1cos ()2f k k k πε????=+ ???????的卷积和。 3、 已知某双边序列的Z 变换为 21 ()1092F z z z = ++,求该序列的时域表 达式()f k 。

4、 已知某连续系统的特征多项式为: 269111063)(234567+++++++=s s s s s s s s D 试判断该系统的稳定情况,并指出系统含有负实部、零实部和正实部的根各有几个? 5、 已知某连续时间系统的系统函数为: 323 2642 ()21s s s H s s s s +++=+++。试给出该系统的状态方程。 6、 求出下面框图所示离散时间系统的系统函数。 ) (k

二、(12分)已知系统框图如图(a ),输入信号e(t)的时域波形如图(b ),子系统h(t)的冲激响应波形如图(c)所示,信号()f t 的频谱为 ()jn n F j e πω ω+∞ =-∞ = ∑ 。 图(a) y(t) ) (t f e(t)图(b) h(t)图(c) 试:1) 分别画出)(t f 的频谱图和时域波形; 2) 求输出响应y(t)并画出时域波形。 3) 子系统h(t)是否是物理可实现的?为什么?请叙述理由;

东南大学编译原理词法分析器实验报告

词法分析设计 1. 实验目的 通过本实验的编程实践,了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。 2. 实验内容 用C++语言实现对C++语言子集的源程序进行词法分析。通过输入源程序从左到右对字符串进行扫描和分解,依次输出各个单词的内部编码及单词符号自身值;若遇到错误则显示“Error”,然后跳过错误部分继续显示;同时进行标识符登记符号表的管理。 3. 实验原理 本次实验采用NFA->DFA->DFA0的过程: 对待分析的简单的词法(关键词/id/num/运算符/空白符等)先分别建立自己的FA,然后将他们用产生式连接起来并设置一个唯一的开始符,终结符不合并。 待分析的简单的词法 (1)关键字: "asm","auto","bool","break","case","catch","char","class","

const","const_cast"等 (2)界符(查表) ";",",","(",")","[","]","{","}" (3)运算符 "*","/","%","+","-","<<","=",">>","&","^","|","++","--"," +=","-=","*=","/=","%=","&=","^=","|=" relop: (4)其他单词是标识符(ID)和整型常数(SUM),通过正规式定义。 id/keywords: digit: (5)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。

东南大学通信原理试卷及参考答案

东南大学考试卷( A 卷)课程名称通信原理考试学期04-05-3 得分 适用专业考试形式闭卷考试时间长度 150分钟 Section A(30%): True or False (Give your reason if False,2% for each question) 1. A typical mobile radio channel is a free propagation, linear, and time invariant channel. ( ) 2.The power spectral density of a stationary process is always nonnegative. ( ) 3.In a communication system, noise is unwanted and over which we have incomplete control. ( ) 4.If a random process is stationary, it is ergodic; if a Gaussian random process is stationary, then it is also strictly stationary. ( ) 5.Double Sideband-Suppressed Carrier (DSB-SC), Single Sideband (SSB), and Frequency Modulation (FM) are all linear modulation schemes. ( ) 6.Figure of merit (defined as (SNR)O/(SNR)C) of AM of DSB-SC is 1/3, and figure of merit of Amplitude Modulation (AM) is less than or equal to 1/3. ( ) 7. -law is a nonlinear compression law and A-law is a linear compression law. ( ) 8.The matched filter at the receiver maximizes the peak pulse signal-to-noise ratio, thus is optimal in a baseband data transmission system with Inter-Symbol Interference (ISI). ( ) 9.Correlative-level coding (also known as partial-response signaling) schemes are used to avoid ISI. ( ) 10.Time-Division Multiplexing (TDM) is used in Asymmetric Digital Subscriber Lines (ADSL) to separate voice signals and data transmission. ( ) 11.If coefficients of an equalizer is adjusted using the Least-Mean-Square (LMS) algorithm adaptively, then the matched filter in front of the equalizer is not necessary. ( ) 12.In an M-ary Phase-Shift Keying (M-PSK) system, if the average probability of symbol error is P e, then the average Bit Error Rate (BER) of the system is P e/log2M. ( ) 13.With the same Signal-to-Noise Ratio (SNR), 16-ary Quadrature Amplitude Modulation (16-QAM) has better performance than 16-ary Phase-Shift Keying (16-PSK). The reason is that 16-QAM has constant envelop. ( ) 14.With the same SNR, Minimum Shift Keying (MSK) has better performance than Sunde’s Frequency-Shift Keying (FSK). They are both Continuous-Phase Frequency-Shift Keying (CPFSK). ( ) 15.If the largest frequency component of an band-limited signal X(t) is at 100 Hz, then the corresponding Nyquist rate is 200 Hz. ( ) 共 5 页第1 页

VC++6.0中如何编译运行及调试C语言程序

VC++6.0中如何编译运行调试C语言程序1.启动VC++6.0 (如下图) 2.单个源文件的编译运行 例如下面的源代码 #include void main() { int i,sum=0; for(i=1;i<=10;i++) { sum=sum+i; } printf("sum=%d\n",sum); }

打开VC++6.0,如图1所示 (图1)选择“文件”→“新建”,打开如图2所示 (图2)

选择“文件”项,如图3所示 (图3) 选择“C++ Source File”项,并在“文件名”项目下输入“sum.c”如图4所示 (图4)

单击“确定”,打开如图5所示 (图5) 输入如上源代码,如图6所示 (图6) 选择按编译按钮调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮检查连接(多文件工程时常用,检查文件间是否正常连接)。

(图7) 在下端的输出窗口会有错误和警告的提示,如果没有错误选择“执行”(或按Ctrl+F5组合键)即可出现运行结果,如图8所示 (图8)

3.多个源文件的编译运行 以上是运行单个源文件的情况,但是在程序设计时,往往是由几个人各自独立编写不同的程序,显然这些程序是不能写在一起进行编译的,这时就需要建立项目工作区来完成几个独立程序的编译,具体方法如下。 首先建立两个文本文件,分别命名为“file1.c”和“file.c”,分别在两个文件中输入如下两个源代码,然后保存。 源代码1: #include void main() { void sum(); sum(); } 源代码2: #include void sum() { int i,sum=0; for(i=1;i<=10;i++) { sum=sum+i; } printf("sum=%d\n",sum); } 打开VC++6.0,选择“文件”→“新建”打开如图9所示

东南大学数字通信试卷(附答案)

东南大学考试卷(A卷) 课程名称 数 字 通 信 考试学期 04-05-2得分 适用专业无线电工程系 考试形式闭 卷 考试时间长度120分钟共 页 Section A:True or False (15%) 1. 1.When the period is exactly 2m, the PN sequence is called a maximal-length-sequence or simply m-sequence. 2. 2.For a period of the maximal-length sequence, the autocorrelation function is similar to that of a random binary wave. 3. 3.For slow-frequency hopping,symbol rate R s of MFSK signal is an integer multiple of the hop rate R h. That is, the carrier frequency will change or hop several times during the transmission of one symbol. 4. 4.Frequency diversity can be done by choosing a frequency spacing equal to or less than the coherence bandwidth of the channel. 5. 5.The mutual information of a channel therefore depends not only on the channel but also on the way in which the channel used. 6. 6.Shannon’s second theorem specifies the channel capacity C as a fundamental limit on the rate at which the transmission of reliable error-free messages can take place over a discrete memoryless channel and how to construct a good code. 7.7.The syndrome depends not only on the error pattern, but also on the transmitted code word. 8.8.Any pair of primitive polynomials of degree m whose corresponding shift registers generate m-sequences of period 2m-1 can be used to generate a Gold sequence. 9.9.Any source code satisfies the Kraft-McMillan inequality can be a prefix code. 10.10.Let a discrete memoryless source with an alphabet ? have entropy H? and produce symbols once every s T seconds. Let a discrete () memoryless channel have capacity and be used once every C c T

TurboC程序设计的基本步骤及如何编译、调试和运行源程序

Turbo C程序设计的基本步骤及如何编译、调试和运行源程序 本节主要介绍Turbo C程序设计的基本步骤及如何编译、调试和运行源程序。并给出Turbo C的常用编辑命令。最后介绍Turbo C编译、连接和运行时的常见错误。 一、Turbo C程序设计基本步骤 程序设计方法包括三个基本步骤: 第一步:分析问题。 第二步:画出程序的基本轮廓。 第三步:实现该程序。 3a.编写程序 3b.测试和调试程序 3c.提供数据打印结果 下面,我们来说明每一步的具体细节。 第一步:分析问题 在这一步,你必须: a. 作为解决问题的一种方法,确定要产生的数据(输出)。作为这一子步的一部分你应定义表示输出的变量。 b. 确定需产生输出的数据(称为输入),作为这一子步的一部分,你应定义表示输入的变量。 c. 研制一种算法,从有限步的输入中获取输出。这种算法定义为结构化的顺序操作,以便在有限步解决问题。就数字问题而言,这种算法包括获取输出的计 Word文档资料

算,但对非数字问题来说,这种算法包括许多文本和图象处理操作。 第二步:画出程序的基本轮廓 在这一步,你要用一些句子(伪代码)来画出程序的基本轮廓。每个句子对应一个简单的程序操作。对一个简单的程序来说,通过列出程序顺序执行的动作,便可直接产生伪代码。然而,对复杂一些的程序来说,则需要将大致过程有条理地进行组织。对此,应使用自上而下的设计方法。 当使用自上而下的设计方法时,你要把程序分割成几段来完成。列出每段要实现的任务,程序的轮廓也就有了,这称之为主模块。当一项任务列在主模块时,仅用其名加以标识,并未指出该任务将如何完成。这方面的容留给程序设计的下一阶段来讨论。将程序分为几项任务只是对程序的初步设计。整个程序设计归结为下图所示的流程图1. 0 1 1主模块 1 I 1 1 I 输入数据I 1主模块I I计算购房所需的金额I 1 I I计算装修所需的金额I 1任务1I I计算总金额I 1任务2I I输出计算结果I 1任务3I I I 1任务4I 1 ---------------- 1 -------------------- 1 I I I——1II——1II——1II1II——1I 1 ---------------------- 1 I输入数据II购房额?? II装修额..I I总额..I I输出 Word文档资料

交叉编译与调试!!!

交叉编译与调试方法 一、交叉编译 1. 建立工作目录 2. 编写源代码 3. 编写makefile文件 4. 编译应用程序 #arm-linux-gcc -g hello.c -o hello 5. 启动NSF,挂载共享文件目录 将光盘中的gdbserver与gdb程序拷贝到共享目录 二、调试步骤 1、在Target Board开启gdbserver 进入共享目录 #gdbserver :2345 hello (我的host-ip是192.168.0.178) gdbserver开始监听2345端口(你也可以设其他的值),然后启动hello,你会看到“Process test created:pid=88” 2、回到Host端 添加环境变量 #export PATH=$PATH:/home/cby/arm-gdb/bin(arm-linux-gdb的路径) 调试 #arm-linux-gdb hello 最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target =arm-linux”... 说明此gdb在X86的Host上运行,但是调试目标是ARM代码。 (gdb)target remote :2345 (我的target-board-ip is 192.168.0.105) 注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。 建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。

注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver 启动了。结果输出是在Target Board端,用超级终端查看。 4. 交叉调试 (gdb)list (gdb)break func (gdb)break 22 (gdb)info br (gdb)c (这里不能用run) (gdb) n (gdb) p result (gdb) finish (跳出func 函数) (gdb) next (gdb) quit 建立连接后进行gdb 远程调试和gdb 本地调试方法相同

东南大学电子技术基础模拟部分试卷 答案

一、填空题(20分,每空1分) 1.双极型三极管是 控制器件,当其工作在放大区时发射结需要加 偏置,集电结需要加 偏置。场效应管是 控制器件。 2. 在有源滤波器中,运算放大器工作在 区;在滞回比较器中,运算放大器工 作在 区。 3. 在三极管多级放大电路中,已知A u1=20,A u2=-10,A u3=1,则可知其接法分别为: A u1是 放大器,A u2是 放大器,A u3是 放大器。 4. 在双端输入、单端输出的差动放大电路中,发射极R e 公共电阻对 信号的 放大作用无影响,对 信号具有抑制作用。差动放大器的共模抑制比K CMR = 。 5. 设某一阶有源滤波电路的电压放大倍数为 2001200 f j A += ,则此滤波器为 滤波器,其通带放大倍数为 ,截止频率为 。 6. 如图所示的功率放大电路处于 类工作状态;其静态损耗为 ;电路的 最大输出功率为 ;每个晶体管的管耗为最大输出功率的 倍。 二、基本题:(每题5分,共25分) 1.如图所示电路中D 为理想元件,已知u i = 5sin ωt V ,试对应u i 画出u o 的波形图。 2.测得电路中NPN 型硅管的各级电位如图所示。试分析管子的工作状态(截止、饱和、放 大)。 3. 已知BJT 管子两个电极的电流如图所示。求另一电极的电流,说明管子的类型(NPN 或PNP )并在圆圈中画出管子。 4.如图所示电路中,反馈元件R 7构成级间负反馈,其组态为 ; 其作用是使输入电阻 、放大电路的通频带变 。 三、如图所示电路中,β=100,Ω='100b b r ,试计算:(15分) 1.放大电路的静态工作点;(6分) 2.画出放大电路的微变等效电路;(3分) 3.求电压放大倍数A u 、输入电阻R i 和输出电阻R o ;(6分) 四、判断如图所示电路中引入了何种反馈,并在深度负反馈条件下计算闭环放大倍数。 (9分) 五、电路如图所示。试用相位条件判断下面的电路能否振荡,将不能振荡的电路加以改正。 (6分) 六、用理想运放组成的电压比较器如图所示。已知稳压管的正向导通压降U D =0.7V ,U Z = 5V 。 1.试求比较器的电压传输特性; 2.若u i =6sin ωt V ,U R 为方波如图所示,试画出u o 的波形。 (10分) 七、理想运放电路如图所示,设电位器动臂到地的电阻为KR W ,0≤K ≤1。试求该电路电压 增益的调节范围。 (10分) 八、一串联型稳压电路如图所示。已知误差放大器的A u >>1,稳压管的U z =6V ,负载R L =20Ω。 1.试标出误差放大器的同相、反相端; 2.说明电路由哪几部分组成? 3.求U o 的调整范围; (10分) 参考答案 一、 1.电流、正向、反向;电压。 2.线性、非线性。

东南大学编译原理试卷

S o ut he a s t Uni v e r si ty E xa mi na ti o n P a per (i n-t e r m) Course Name Principles of Compiling Examination Term Score Related Major Computer & Software Examination Form Close test Test Duration120 Mins There are 5 problems in this paper. Y ou can write the answers in English or Chinese on the attached paper sheets. 1.Please construct context-free grammars with ε-free productions for the following languages (20%). (1){i|i∈N(Natural number), and i is a palindrome, and (i mod 5)=0} (2){ω| ω∈(a,b,c,d)* and the numbers of a’s ,b’s and c’s occurred in ω are even, and ωstarts with a or c , ends with d } 2.Please construct a DFA with minimum states for the following regular expression. (20%) (((a|b)*a)*(a|b))*(a|b) 3.Please eliminate the left recursions (if there are)and extract maximum common left factors (if there are) from the following context free grammar, and then decide the resulted grammar is whether a LL(1) grammar by constructing the related LL(1) parsing table.(20%) Please obey the rules of examination. If you violate the rules, your answer sheets will be invalid 共 2 页第 1 页

东南大学《工程矩阵理论》试卷样卷及答案

工程矩阵理论试卷 一、假如n n A C ?∈。 1、记} { ()n n V A X C AX XA ?===。证明:()V A 是n n C ?的子空间。 2、若A 是单位矩阵,求()V A 。 3、若2n =,0011A ?? = ?-?? 。求这里V (A )的一组基及其维数。 4、假如} { 22 ()W A X C AX O ?===。问:对上一题中的()V A 和()W A ,()()V A W A +是否为直和? 说明理由。 解: 1、证明子空间,即为证明该空间关于加法和数乘封闭。即若有,()x y V A ∈,()()x y V A +∈,()kx V A ∈。 设,()x y V A ∈,k F ∈, ()()A x y Ax Ay xA yA x y A +=+=+=+,()()x y V A +∈∴ ()()A kx kAx kxA kx A ===, ()kx V A ∈∴ ∴()V A 是n n C ?的子空间。 2、若A 是单位矩阵,则} { ()n n V A X C IX XI ?===,因为对单位阵I 来说,IX XI =恒成立,故, ()n n V A C ?=。 3、若2n =,0011A ??= ?-??,设a b X c d ?? = ??? ,有AX XA =,即, 00001111000a b a b c d c d b b a c b d d d b a c d b d d ???????? = ??? ???--???????? -????= ? ?---????=?? -=??-=-? ,→ 有0b a c d =??-=?,故0a X c a c ??= ?-??=0000a c c a ????+ ? ?-???? 故X 的一组基为00101101,???? ? ?-???? ,维数为2。

编译原理实验 简单词法分析(含源代码和实验结果)

附录一实验报告样式 《编译原理》实验报告 实验2 简单词法分析 姓名陈婷婷学号1009050121 班级计科1001班 时间:2012/4/5 地点:文波 同组人:无 指导教师:朱少林 实验目的 通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力。掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法;掌握词法分析的实现方法;上机调试编出的词法分析程序。 实验内容 ⑴掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。 ⑵掌握词法分析的实现方法。 ⑶上机调试编出的词法分析程序。 ⑷为简单起见,假设编译语言为具有下特征的C_minus。该词法分析器要求至少能够识别C_minus中的以下几类单词: a.关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写; b.标识符:识别与C语言词法规定相一致的标识符,通过下列正则表达式定义:ID = letter (letter | digit)*; c.常数:NUM=(+ | - |ε)digit digit*(.digit digit* |ε)(e(+ | - |ε) digit digit* |ε),letter = a|..|z|A|..|Z|,digit = 0|..|9,包括整数,如123, -123, +123等;小数,如123.45, +123.45, -123.45;科学计数法表示的常数,如+1.23e3,-2.3e-9; d.专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */;

东南大学电子学院《电路基础》期末考试样卷及答案

Solve the following problems. (100 points) 1、( 6 points) Find U ab in the circuit in Figure 1. Figure 1 a b 2、( 8 points) Find u o and i o in the circuit in Figure 2. u o Figure 2 - 3、( 6 points) In the circuit of Figure 3, readings of voltmeter ○V1,○V2 and ○ V3 are 10V , 18V and 6V , respectively. Please determinate the reading of the voltmeter ○V . a Figure 3 4、( 8 points) The resonant or tuner circuit of a radio is portrayed in Figure 4, where u s1 represents a broadcast signal, given that R =10Ω,L =200μH , U s1rms =1.5mV ,f 1=1008kHz. If the circuit is resonant with signal u s1, please determinate: (1) the value of C ; (2) the quality factor Q of the circuit; (3) the current I rms ; (4) the voltage U c rms .

东南大学编译原理试卷

S o u t h e a s t U n i v e r s i t y E x a m i n a t i o n P a p e r(A) Course Name Principles of Compiling Examination Term08-09-2 Score Related Major Computer Science & Technology Examination Form Close test Test Duration 150 Mins There are 8 problems in this paper. You can write the answers in English or Chinese on the attached paper sheets. 1.Please construct context-free grammars with ε-free productions for the following language (10%). {ω| ω∈(a,b,c)* and the numbers of a’s and b’s and c’s occurred in ω are even, and ωstarts with b , ends with a or c} 2.Please construct a DFA with minimum states for the following regular expression. (10%) (a|(a|(a|b*))*)*(a|b*) 3.Please eliminate the left recursions (if there are)and extract maximum common left factors (if there are) from the following context free grammar, and then decide the resulted grammar is whether a LL(1) grammar by constructing the related LL(1) parsing table.(15%) P→b S d Please obey the rules of examination. If you violate the rules, your answer sheets will be invalid 共 6 页第1 页

C源程序调试方法

C源程序调试方法: 所谓源程序调试是指对程序的查错和排错,一般应经过以下几个步骤: 1进行静态检查 写好一个程序后,不要匆忙用编译器编译,应对写好的源程序进行人工检查,这一步是十分重要的,它能发现程序设计人员由于疏忽而造成的大多错误。为了减少编程错误,在编写程序中应力求做到以下几点: ①应当采用结构化程序方法编程,以增加可读性。 ②应尽可能多加注释,以帮助理解每段程序的作用。 ③在编写复杂的程序时,不要将全部的语句都写在main函数中,而要多利 用函数,用一个函数来实现单独的功能,既易于阅读也便于调试。各函数之间除了用参数传递数据这一渠道外,能够不用其他的渠道就尽量不用,数据间应尽量减少耦合的关系。 2、上机动态检查调试, 根据编译器提示的语法错误,提出编译器提示的全部错误(error)并一一改正,直到通过编译,生成下载文件或调试文件,还应该仔细检查编译器的警告(warning)信息,确认所有的警告信息并不会影响编译结果的正确性。有时,编译器的错误提示并非正确,而且出错的情况繁多且各种错误相互关联,因此要善于分析,找出真正的错误。 3、 Studio环境中进行硬件仿真或软件仿真。 测试的目的是为了测试软硬件能否在各处复杂的情况下正常工作,在测试时应当尽可能地将程序流程中的各分支和各种极限情况都测试一次,程序运行结果不对,大多属于逻辑错误,应将源程序与流程图仔细对照,是很容易发现错误的。 软件思想:本系统主要是用Mega 16主控单片机,控制液晶显示,输入键盘和电机的运行,Mega 16单片机根据键盘输入指令,运行相应的程序。当选择学习示教程序时,就是运用键盘控制电机的运行,然后记录电机运行的相关速度和最终的坐标到相应的寄存器,并在液晶显示器中显示学习示教程序运行状态,使用户更好的进行电机设置和了解电机的运行状态。

相关主题