在Visual C++ 2012(MSVC)编译SDCC编译器
来源:互联网 发布:linux 查看重启动原因 编辑:程序博客网 时间:2024/06/05 08:26
当你想使用一个开源的工具来开发单片机51程序时,可以使用SDCC编译器,它不仅是免费的,还是开放源码的编译器;不仅让你可以开发51的程序,还可以深入了解编译原理的编译器。通过本文的指导,你可以实现自己编译一个51编译器出来,也可以继续深入地了解编译器的原理作为基础。
为了下载SDCC编译器的源码,你得先到官方网站下载相应的代码,下载代码有两种方式:方式一是通过SVN代码库来下载:
svn://svn.code.sf.net/p/sdcc/code/trunk/sdcc
使用SVN工具就可以通过上面的连接把源代码下载。
方式二是通过压缩包的方式下载:
http://sdcc.sourceforge.net/snap.php
在这种方式里,文件包命名为sdcc-src-yyyymmdd-rrrr.tar.bz2方式,找到最新的压缩包下载即可。
接着自行安装VC2012版本,不过在VC2012版本里不能编译SDCC的工程ucSim。安装VC2012之后,就可以到SDCC的目录下面找到解决方案文件sdcc.sln,打开这个方案文件,并在加载完成之后,会提问是否升级到VC2012的工程,因为SDCC官方还是建议使用VC2010开发。当所有工程编译通过之后,就会在目录sdcc\bin_vc生成所有执行文件。当你需要发布出去时,可以从目录sdcc\bin_vc拷贝到sdcc\bin目录里,就可以运行起来了。
SDCC的部分工程里使用开源库boost库,因此你需要到网站:
http://www.boost.org/
下载相应的版本,解压放到一个目录下,然后在VC2012的工程目录里指定相应的路径。就可以编译与boost相关的工程了。
为了编译词法分析和语法分析部分相关的代码,需要工具bison.exe,flex.exe和gawk.exe,可到网站htttp://unxutils.sourceforge.net下载,主要下载文件UnxUtils.zip。当成功下载之后,在根目录下创建一个文件夹c:\UnxUtils,然后把所有文件解压到此目录下面。然后在VC++Directories目录里添加此目录,这样就让可以工程访问相应的工具。
记得一定下载此版本UnxUtils的执行文件,其它版本的执行的文件,可能会导致sdcpp项目编译不通过。
做这些动作之后,在VC2012的工程里选择 build all就可以编译所有文件出来。后面就可以在目录sdcc\bin_vc找到所有输出文件,拷贝到sdcc\bin就可以使用了,可以开始对51的程序进行开发和编译了。
蔡军生 QQ;9073204 深圳
- 在Visual C++ 2012(MSVC)编译SDCC编译器
- Sublime Text 2调用Visual Studio 2012的编译器编译C/C++
- MSVC编译器Warnings手册
- [C编译器]在VS中编译调试C程序
- SDCC Linux编译
- Visual Studio 2012 编译C
- SDCC编译器及asxxxx汇编编译器
- Opencv + Qt(VS编译器MSVC版本)的使用
- TKStudio内置51编译器SDCC对C语言的扩展(1)
- TKStudio内置51编译器SDCC对C语言的扩展(1)
- 模拟Linux命令行方式在Windows下编译C/C++程序(使用VS编译器)
- 在 windows 下面用 msvc 编译 emacs-unicode-2
- quazip 在windows msvc 2005 下的编译
- Windows8开发指南(8)在Visual Studio11编译器的安全性增强-下一代Visual C++2012的新特性
- MSVC 2012动态编译及静态编译 QT 5.0.2
- MSVC 2012动态编译及静态编译 QT 5.0.2
- msvc实现自动编译
- msvc 编译 VLC
- Tracking Database Feature Usage (DBA_FEATURE_USAGE_STATISTICS)
- (四十四)编程练习
- 不同级数复杂度的计算
- 整理学习图片加载及图片选择器的知识点
- html5系列:form 2.0 新数据类型
- 在Visual C++ 2012(MSVC)编译SDCC编译器
- Hadoop 配置参数摘要和默认端口整理
- ionic调试方法总结
- 【Android】【Studio】Sdudio 快捷键
- 深度剖析C++对象池自动回收技术实现
- VideoView中getDuration()和getCurrentPosition()获取错误的问题
- 不相交集ADT
- 详解js闭包
- Android学习笔记——Button(按钮)响应事件的四种方式