如何写编译器才能通过综合编译

下次自动登录
现在的位置:
& 综合 & 正文
VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
昨天写了一个很小的winform,其中引用了自己写的两个dll文件。
本来认为轻松搞定,结果一编译居然提示:未能找到类型或命名空间名称。。。。。
于是删掉两个dll重新引用,再编译结果依旧!很是郁闷。
后来经过调查,终于发现了解决方法:
在项目上点右键--&属性--&应用程序--&目标框架--&修改为.NET Framework 4。
而我原来的设置是.NET Framework 4 Client Profile。问题就出在这里。
以下是MSDN给出的提示:
If you are targeting the .NET Framework 4 Client Profile, you cannot reference an assembly that is not in the .NET Framework 4 Client Profile. Instead you must target the .NET Framework 4.
&&&&推荐文章:
【上篇】【下篇】您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
编译程序的功能和组织结构.ppt29页
本文档一共被下载:
次 ,本文档已强制全文免费阅读,若需下载请自行甄别文档质量。
文档加载中...广告还剩秒
需要金币:115 &&
你可能关注的文档:
··········
··········
编译程序的功能和组织结构 第六章
语法制导翻译 6.1.1 逆波兰记号(后缀式) 将运算对象写在前面,把运算符号写在后面
后缀式的计算机处理 后缀式的最大优点是易于计算机处理 处理过程:
从左到右扫描后缀式,每碰到运算对象就推进栈;碰到运算符就从栈顶弹出相应目数的运算对象施加运算,并把结果推进栈。最后的结果留在栈顶。?
逆波兰表示法的扩充
逆波兰表示法很容易扩充到表达式以外的范围
例如: 逆波兰示例 确定输入a+a?a的输出: E,E ? E+T,ET+ ? T+T,TT+ ? F+T,FT+ ? a+T,aT+ ? a+T?F,aFF?+ ? a+F?F,aFF?+ ? a+a?F,aaF?+ ? a+a?a,aaa?+
6.1.2 三元式和树形表示 格式: 算符, 第一运算对象, 第二运算对象
如: a b*c+b*d 1
6.1.3 四元式 由于三元式中的结果是用它的编号表示的,当在三元式进行优化后,就要用一定的时间重新安排三元式的编号,很费时间。为了防止优化后的重新编址,在三元式基础上增加了一个存放结果的单元,这就形成了四元式子,是一种最常用的形式。 格式: 算符, 第一运算对象, 第二运算对象, 结果
如: a b*c+b*d 1
*,b,c,t1 2
*,b,d,t2 3
+,t1,t2,t3 4
四元式的特点 类似于三地址指令 四元式虽然比三元式多了一结果的引用,但有利于优化和代码生成 为了便于书写四元式也可以写成如下形式:
: 则表达式a+ -b*c+d *e的四元式为: 1
t2: t1*c 3
t5 a+t4 同样要将算法语言翻译成相应的四元式,也要将四元式扩充到其他运算符,如 jmp,_,L 表示无条件转向第L条四元式。 6.1.4
汇编代码 汇编语言是依赖于机器的低级程序设计语言,它是面向具体的计算机系统或相应的计算机系列的,它和三元式相比有以下优点: (1)能方便地翻
正在加载中,请稍后...博客访问: 377022
博文数量: 262
博客积分: 5000
博客等级: 大校
技术积分: 2821
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
小弟刚开始接触,从网上的讲解ARM流程的都是基于GCC交叉环境的:选ARM--&写BOOTLOADER等等!但是公司用的是ADS综合开发环境。小弟想问一下,GCC和ADS有什么异同?从网友的资料来看,GCC交叉编译环境的建立还挺复杂的,既然这么复杂,为什么还要用它?为什么不用ADS?哪位老大给解释一下?
&&& 这么说吧,你只用裸机的程序,不用操作系统的话那直接用ADS就行了,不需要交叉编译环境。
但是如果要跑操作系统,那么怎么编译操作系统就需要用交叉编译环境。
一般来说ADS又不知道怎么编译你的操作系统(经过修改也是可以的),这就需要用交叉编译器来编译。
简单来说交叉编译器就是在PC模拟一个ARM处理器的环境(借鸡下蛋),将编译后的二进制文件down进取运行。BootLoader就是一个引导程序,相当于PC机的Bios,也就是你的arm处理器的Bios,对硬件进行一些初始化,然后进入操作系统运行。
谢谢斑竹,再问两个问题:
1、如果不跑操作系统,ADS调试ARM是不是和Keil调试C51差不多?
2、如果要跑操作系统,将GCC编译好的操作系统影像文件和BootLoader烧录到FLASH之后,整个ARM系统还是不是可以继续在ADS下调试?如果可以的话,是不是意味着GCC在整个过程中只起到编译操作系统的作用,生成操作系统影像文件后,GCC就可以功成身退了?
第一个问题可以,就是和跑裸机的单片机一样。第二个问题,一般来说,编译过的影像文件不可以在ADS下调试(ADS怎么知道操作系统有哪些文件,怎么链接)。但是网上也有一些作了一些其他的工作可以调试一下(ADS调试uclinux内核等),但我觉得还是不好用。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
一般LINUX、UCLINUX 的移植于开发都用GCC。
而不带OS或者移植简单的ucos,多用ADS进行开发。在Windows PC上,多用于ADS.
LINUX的操作系统或者通过虚拟机的LINUX,多用GCC.
ads直接编译生成的.bin文件可以在没有os的板子上跑啊,干嘛还要什么gcc编译? 你只要设置ads的配置参数就行了呀。
如果是在linux下,就要下载一个交叉编译工具,解压后把工具的路径设置成环境变量,然后arm-linux-gcc 编译,就可以生成你要的在板子上跑的代码了。
阅读(672) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 自己写编译器 的文章

 

随机推荐