當(dāng)你想使用一個(gè)開(kāi)源的工具來(lái)開(kāi)發(fā)單片機(jī)51程序時(shí),可以使用SDCC編譯器,它不僅是免費(fèi)的,還是開(kāi)放源碼的編譯器;不僅讓你可以開(kāi)發(fā)51的程序,還可以深入了解編譯原理的編譯器,
在Visual C++ 2012(MSVC)編譯SDCC編譯器
。通過(guò)本文的指導(dǎo),你可以實(shí)現(xiàn)自己編譯一個(gè)51編譯器出來(lái),也可以繼續(xù)深入地了解編譯器的原理作為基礎(chǔ)。為了下載SDCC編譯器的源碼,你得先到 下載相應(yīng)的代碼,下載代碼有兩種方式:方式一是通過(guò)SVN代碼庫(kù)來(lái)下載:
使用SVN工具就可以通過(guò)上面的連接把源代碼下載。
方式二是通過(guò)壓縮包的方式下載:
在這種方式里,文件包命名為sdcc-src-yyyymmdd-rrrr.tar.bz2方式,找到最新的壓縮包下載即可。
接著自行安裝VC2012版本,不過(guò)在VC2012版本里不能編譯SDCC的工程ucSim。安裝VC2012之后,就可以到SDCC的目錄下面找到解決方案文件sdcc.sln,打開(kāi)這個(gè)方案文件,并在加載完成之后,會(huì)提問(wèn)是否升級(jí)到VC2012的工程,因?yàn)镾DCC官方還是建議使用VC2010開(kāi)發(fā)。當(dāng)所有工程編譯通過(guò)之后,就會(huì)在目錄sdccin_vc生成所有執(zhí)行文件,
電腦資料
《在Visual C++ 2012(MSVC)編譯SDCC編譯器》(http://m.stanzs.com)。當(dāng)你需要發(fā)布出去時(shí),可以從目錄sdccin_vc拷貝到sdccin目錄里,就可以運(yùn)行起來(lái)了。SDCC的部分工程里使用開(kāi)源庫(kù)boost庫(kù),因此你需要到網(wǎng)站:
http://www.boost.org/
下載相應(yīng)的版本,解壓放到一個(gè)目錄下,然后在VC2012的工程目錄里指定相應(yīng)的路徑。就可以編譯與boost相關(guān)的工程了。
為了編譯詞法分析和語(yǔ)法分析部分相關(guān)的代碼,需要工具bison.exe,flex.exe和gawk.exe,可到網(wǎng)站htttp://unxutils.sourceforge.net下載,主要下載文件UnxUtils.zip。當(dāng)成功下載之后,在根目錄下創(chuàng)建一個(gè)文件夾c:UnxUtils,然后把所有文件解壓到此目錄下面。然后在VC++Directories目錄里添加此目錄,這樣就讓可以工程訪問(wèn)相應(yīng)的工具。
記得一定下載此版本UnxUtils的執(zhí)行文件,其它版本的執(zhí)行的文件,可能會(huì)導(dǎo)致stdcpp項(xiàng)目編譯不通過(guò)。
做這些動(dòng)作之后,在VC2012的工程里選擇 build all就可以編譯所有文件出來(lái)。后面就可以在目錄sdccin_vc找到所有輸出文件,拷貝到sdccin就可以使用了,可以開(kāi)始對(duì)51的程序進(jìn)行開(kāi)發(fā)和編譯了。