導航:首頁 > 源碼編譯 > 君正t10編譯環境搭建

君正t10編譯環境搭建

發布時間:2023-06-03 15:15:35

⑴ ubuntu 下怎麼搭建kodi 編譯環境

1. 安裝Ubuntu。
2. 安裝gcc
方法一:
sudoapt-get install build-essential
安裝完了可以執行
gcc--version的命令來查看版本,輸出如下:
gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7)
Copyright(C)2007FreeSoftwareFoundation,Inc.
編譯則使用Ubuntu gcc命令。要往下學習首先就得熟悉gcc命令的用法。
Ubuntugcc命令提供了非常多的命令選項,但並不是所有都要熟悉,初學時掌握幾個常用的就可以了,到後面再慢慢學習其它選項,免得因選項太多而打擊了學習的信心。
一. 常用編譯命令選項假設源程序文件名為test.c。
1. 無選項編譯鏈接
用法:#gcc test.c
作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件。這里未指定輸出文件,默認輸出為a.out。
2. 選項 -o
用法:#gcc test.c -otest
作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件test。-o選項用來指定輸出文件的文件名。
3. 選項 -E
用法:#gcc -E test.c -otest.i
作用:將test.c預處理輸出test.i文件。
4. 選項 -S
用法:#gcc -S test.i
作用:將預處理輸出文件test.i匯編成test.s文件。
5. 選項 -c
用法:#gcc -c test.s
作用:將匯編輸出文件test.s編譯輸出test.o文件。
6. 無選項鏈接
用法:#gcc test.o -otest
作用:將編譯輸出文件test.o鏈接成最終可執行文件test。
7. 選項-O
用法:#gcc -O1 test.c -otest
作用:使用編譯優化級別1編譯程序。級別為1~3,級別越大優化效果越好,但編譯時間越長。
二. Ubuntu gcc多源文件的編譯方法
如果有多個源文件,基本上有兩種編譯方法:
[假設有兩個源文件為test.c和testfun.c]
1. 多個文件一起編譯
用法:#gcc testfun.ctest.c -o test
作用:將testfun.c和test.c分別編譯後鏈接成test可執行文件。
2. 分別編譯各個源文件,之後對編譯後輸出的目標文件鏈接。
用法:
#gcc -ctestfun.c //將testfun.c編譯成testfun.o
#gcc -ctest.c //將test.c編譯成test.o
#gcc -otestfun.o test.o -o test //將testfun.o和test.o鏈接成test
以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。

3. 安裝eclipse
a) 安裝配置java(eclipse需要)
Ubuntu 在安裝時,如同大部分linux 發行版一樣,都會同時安裝 GNU 版本的 Java。這個 Java 的實用程度太低,尤其對於開發人員來說,是沒有太多用處的。在 Ubuntu 下,安裝 SUN Java 是一件很容易的事情。第一步:
sudoapt-get install sun-java6-jdk
安裝完畢之後,選擇默認 java:
sudo update-alternatives --config java
然後配置環境變數:
sudo vim /etc/environment
在其中添加如下兩行:(不同版本應不同,這里是java6)
CLASSPATH=/usr/lib/jvm/java-6-sun/lib
JAVA_HOME=/usr/lib/jvm/java-6-sun保存退出。
b) 安裝 Eclipse
sudo apt-getinstall eclipse-platform
sudo apt-get install eclipse-pde
雖然已經這時新安裝的java 已經成為系統默認的 jvm,但是 Eclipse 並不會用 update-alternative 設置的 jvm 來啟動自身,而使用的是以前的 GNU Java。GNU Java 是 1.4.2 的實現,而且在性能上遠不如 SUN 的實現。為了讓 Eclipse 利用 SUN Java 啟動,我們還需要繼續配置。首先將 SUN Java 完完全全的設置為系統的默認 JDK:
sudo update-java-alternatives -s java-6-sun
然後編輯 JVM 配置文件:
sudo vim /etc/jvm
將文件中的
/usr/lib/jvm/java-6-sun
這一行填入到配置塊的頂部。由於 Eclipse 會忽略 Ubuntu 的通用 Java 設置(貌似一個 bug),我們需要繼續編輯 Eclipse 的 java_home 文件:
sudo vim /etc/eclipse/java_home
如同上面一樣,將
/usr/lib/jvm/java-6-sun
這一行填入到文件的頂部。
c) 安裝 Eclipse, c/c++插件

1、啟動eclipse,
2、選擇Help->InstallNew Software...,在Work with的框框下復制下面的地址: http://download.eclipse.org/releases/galileo
3、選擇Collaboration->MylynBridge: C/C++ Development,安裝,重啟eclipse。
4、同上述2、3,選擇ProgrammingLanguages->Eclipse C/C++ Development,都選上吧,現在硬碟不貴的。重啟eclipse,試試吧,有tutorial的。
備註:有些版本還需要安裝GTK+庫,使用apt-getinstall libgtk2.0*可得到

4. 安裝g++
方法一:
sudo apt-get install make gcc g++
再裝上函數手冊
sudo apt-get install manpages-dev
方法二:
sudo apt-get install build-essential
執行完後,完成了gcc,g++,make的安裝。build-essential 是一整套工具,gcc,libc等等

5. 虛擬機下共享文件
Windows和Linux間有很多文件共享的方式,這里我總結了一下。假設你的Host計算機是Windows,Guest是Linux哈。
1.利用Samba
這是我用得最多的方式
備註:試了一下,比較麻煩
2.在Linux下配置Apahce
在Linux下配置Apahce,然後在Windows下通過www方式把Linux下的文件下載下來。這種方式只能把Linux的文件傳到Windows,不能把Windows的文件傳到Linux.
3.在Linux下配置Ftp
用vsftp或者wu-ftp都可以,配置成上傳許可權的,然後Windows和Linux就可以相互共享文件了。
4.Windows下配置WWW服務
用IIS,Apache或者其它的都可以。如果你的Linux只有命令行的話,就用wget命令吧,可以很方便地下載文件。
5.Windows下配置Ftp
用serv-u比較簡單
6.利用Windows的文件共享功能
比如說你的Windows的IP為192.168.0.1,共享了一個叫share的目錄,那麼就可以用下列命令
mount -t smbfs //192.168.0.1/share /mnt -o username=user%passwd
或者smbmount//192.168.0.1/share /mnt -o username=user%passwd(用這個命令要安samba哦)
7.用vmware tools工具
SharedFolders是Vmware4 的一個新功能,更加方便了在Host,Guest操作系統間共享文件。但是使用前要安裝vmwaretools.
點擊setting->vmwaretools install
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
裡面有一個vmwaretools的tar包,解開執行vmware-tools-install.pl腳本,一路回車,一般沒有問題。
點擊Edit->VirtualMachine Settigns->Option->SharedFolders->Add,選定要共享的文件夾並給這個文件夾命名,下一步。選定「Enable thisshare」,確定以後,vmware會把這個文件夾自動mount到/mnt/hgfs目錄下。
備註:是否成功和ubuntu與vmwaretools的版本有關,需要彼此匹配。
8.直接掛接物理硬碟或者硬碟分區
不過vmware也是支持直接mountHost機器的磁碟,方法是在虛機設置里新建磁碟,類型選「Usephysicaldisk(foradvanced users)」,再選定磁碟和分區就可以。但是這樣的操作可能會引會文件系統的不一致,導致錯誤,不推薦使用。
9.用ISO文件
虛擬機裡面的光碟機可以有物理光碟機和ISO文件兩種,我們可以把我們的文件重點製件成ISO文件(用WinIso),然後在Linux中作為CDROM掛接。

6. Samba安裝
Ubuntu下samba的安裝設置
步驟1:Ubuntu下安裝samba
#apt-getinstall samba4
#apt-getinstall smbfs
步驟2:添加linux用戶
#useradser1 //添加用戶名user1
#passwser1 //給用戶名user1添加密
#mkdir/home/user1 //建立user1的home目錄,如果不用這個用戶名來登陸linux,此步驟不是必需
#chown-R user1:user1 /home/user1//給user1的home目錄設置好許可權
步驟3:給samba伺服器添加用戶
說明:登陸samba的用戶必須已經是linux中的用戶
#smbpasswd-a user1 //添加並給user1設置samba密碼
步驟4:smb.conf設置
#cd/etc/samba //進入設置目錄
#mv smb.confsmb.conf.bak//做好備份,直接將系統默認配置文件改名
#vimsmb.conf //建立和配置smb.conf文件
[global]
workgrop=x1 //X1為你區域網中的工作組名
serverstring=x2 //x2為你linux主機描述性文字,比如:samba server。
security=user//samba的安全等級,user代表需要輸入用戶名和密碼,改成share則不需要輸入用戶名和密碼
[x3] //方框號中的x3這個名字可以隨便取,只是在win的網上鄰居中顯示的共享文件夾名
path=/home/x4//x4為你要共享的文件夾名,在共享前還要建立這個文件夾,並設好許可權以便訪問,下面會說明。
valisers=user1 //這個x4共享目錄只允許user1這個用戶進入
public=no //no表示除了user1這個用戶,其它用戶在進入samba伺服器後看不見x4這個目錄,如果為yes,雖然能看見x4這個目錄,但除了user1這個用戶能進入這個目錄,其它人進不了。
writable=yes //允許user1在x4目錄中進行讀和寫操作,反之no
//存檔退出
#testparm //檢查一下語法錯誤,比如拼錯
步驟5:建立共享目錄
#mkdir /home/x4
#chown -R user1:user1 /home/x4 //因為是root建立的目錄,其它用戶只有讀的許可權,所還得把許可權改一下。當然也可以簡單的用#chmod 777 /home/x4。還有個問題就是共享里目錄的文件如果有些能訪問有些不能訪問,那肯定也是許可權的問題,進入/home/x4,直接#chmod 777 *來解決。
步驟6:重啟samba服務
#/etc/init.d/samba restart

7. windows客戶端連接到samba伺服器
首先確保你的服務端已經配置好samba並成功啟動服務,方法可參考此文章http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.aspx,我們就可以從Windows 客戶端通過Windows網路連接到Samba,這里以 Windows XP 為例,有兩種方法:
1、網上鄰居-->查看工作組計算機-->SambaServer
2、打開運行(windows鍵+R),輸入配置samba伺服器的主機名或者IP(格式:\\192.168.1.98)
3、進入samba可以看到我們配置的共享目錄名,此文章中http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.aspx的步驟4配置的為share
4、第一次登錄需要輸入用戶名和密碼,此文章中http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.aspx的步驟6配置的為username的用戶名,可勾選記住我的密碼,以後在此機器訪問samba伺服器就可以直接登錄了。

8. cvs客戶端設置
ubuntu有兩種cvs客戶端程序:cvs和cvsnt。
我安裝了cvsnt
0. 安裝cvsnt
1. 在~/.bashrc設置CVSROOT變數:
exportCVSROOT=:pserver:[email protected]:/export/home/cvsroot
改了以後,用戶需要重新注冊
2. 創建cvs目錄 mkdir~/cvsroot
3. cdcvsroot
cvs login
xxx(密碼)
4.checkout項目:
cvs co a/b/project/src
5. 常用命令:(斜杠後表示縮寫)
cvs checkout / co
cvs update / up
cvs commit / ci
查看一個文件的提交情況:cvs logfilename
對比兩個版本文件的情況:cvs diff -r version_1 version_2 file_name
6. 獲得一個文件的歷史版本
cvs update -r 1.3 test.c
-r 後,文件成為一個tag,是無法修改的,需重新從根目錄checkout

9. 安裝 vim
sudo apt-get install vim

10. 安裝vfftp
sudoapt-get install vsftpd
察看是否打開21埠
Sudonetstat –tulnp | grep 21
登陸
ftp localhost
輸入Ubuntu的用戶名、密碼登陸
ls(會顯示home目錄的文件)
運行:
standalone
最普通的方式
Sudoservice vsftpd

⑵ 如何編譯OpenWrt

搭建編譯環境。編譯建議在Linux下進行。我的系統是Linux mint 17,執行以下命令,構建編譯環境:

sudo apt-get update
sudo apt-get install git-core build-essential

獲取openwrt源碼。在當前用戶主目錄下執行

git clone git://git.openwrt.org/openwrt.git

等待代碼下載。結束後,目錄下會出現openwrt文件夾。
配置軟體源。進入openwrt目錄,執行

./scripts/feeds update -a

./scripts/feeds install -a

檢查編譯環境是否完整:

make defconfig

make prereq

根據提示信息安裝需要的軟體包。如果提示類似

「tmp/.config-package.in:22022:warning: multi-line strings not supported」

的信息,打開 openwrt/tmp/.config-package.in,定位到對應行,添上丟掉的一個引號就可以了。
編譯選項:

執行 make menuconfig,根據路由器情況,選擇 Target System 和 Subtarget。如意雲一代和極壹S的 Target System 均為 Ralink RT288x/RT3xxx 。對於Subtarget ,前者為 MT7620n based boards ,後者為 MT7620a based boards。

其他選項根據個人喜好選擇。一般來說要選中LuCI界面,選中中文語言包等等。
開始編譯:

執行 make -j2 V=s 進行編譯。-j後面的數字是電腦物理CPU數量加一。V=s可以顯示出編譯的詳細信息。首次編譯大概需要幾個小時的時間。
錯誤排查:

編譯失敗,一般有兩種情況:

1.代碼下載鏈接失效。首次編譯時,編譯程序會實時從網上下載一些軟體包的代碼。如果下載鏈接失效,編譯就會失敗。這時需要根據軟體包的名稱,從網上自行下載,然後放在 openwrt/dl/ 目錄下,執行 make -j2 V=s 繼續編譯即可。

2.軟體包自身有問題。這時重新執行 make menuconfig ,取消對應軟體包選中即可。這種情況比較少見,目前已知的有 tor 等。

編譯成功,但沒有生成固件。這種情況一般是因為選中的軟體包過多,導致固件大小超過16MB。重新執行 make menuconfig,去掉一些軟體包,重新執行編譯即可。
得到固件。在排除了所有錯誤後,現在終於得到了固件。對於如意雲RY-1,固件在 openwrt/bin/ramips 目錄下,形如

openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin

等等。

⑶ 如何使用Maven編譯Github上的工程

思路一:下載源碼,自己下載依賴lib,構建編譯環境,成功;
1. 從maven 地址下載,一般關心下面紅色的3個,帶sources的肯定就是源碼了,但是裡面沒有相關依賴關系,這個可以看 .pom 文件;
將sources.jar 變為zip 文件,解壓出來;
在你項目的 androidstudio project 中新建一個 Java library;命名為 nettylib-4.0.14
將2中源碼文件io/netty/ 拷貝到src/main/Java/ 目錄下
studio sync,編譯看報錯的地方,或者根據 1 中地址裡面的 pom 文件,找到netty 編譯需要依賴的第三方 jar
依賴jar 查詢地址:
最後nettylib-4.0.14 中的 build.gradle 配置如下:

其中會遇到不少問題,我搞了很久,因為走了些彎路,如上圖,我直接貼出來配置了,但是仍然有少數的文件會報錯,因為和項目無關,所有直接刪掉啦;
編譯可能會遇到各種錯誤,我就不一一貼出來了,大家有問題,請留言;
思路二:在github上下載源碼,並且按照其設置來配置編譯環境
git 源碼地址:
編譯環境搭建:
主要有eclipse +maven 和使用IDEA
1. 使用eclipse +maven,比較容易報錯,因為eclipse 和maven 可能有不兼容的情況;
建議使用前最好,進入netty下載目錄,
1。mvn install 在本地Repository中安裝jar
2。mvn eclipse:eclipse 生成eclipse項目
然後就多了 .classpath 和 .project,可以直接導入eclipse
我2種都試過啦,eclipse 報錯比較難搞定,最後使用的是IDEA;
直接以maven 工程導入就行了,導入後,編譯也ok

⑷ 如何在windows環境下搭建qnx編譯環境

1.<BUILD_ROOT>是指正確的目錄,如E:\community.qnx.com\svn\repos\coreos_pub,裡面有trunk,源碼在裡面。

2.如果不是在Neutrino self-hosted下運行( then you will need to tell the build process to ignore the content of the GNU configure style source moles.) 運行此命令,大概運行幾分鍾。(hide-gnu.sh可下載)
% ksh hide-gnu.sh <BUILD_ROOT>

3.創建目錄(Create a staging directory for installed binaries and headers to go )
% cd <BUILD_ROOT>
% mkdir stage

4.按文檔中方法建立qconf-override.mk文件,也是在<BUILD_ROOT>目錄下。內容如下:
USE_INSTALL_ROOT=1
INSTALL_ROOT_nto=<BUILD_ROOT>/stage
VERSION_REL=6.3.0
注意一定要使用「/」換掉Windows的「\」

5.% export QCONF_OVERRIDE=<BUILD_ROOT>/qconf-override.mk
Windows下用set替代export.也可直接在我的電腦->環境變數里增加。還是要注意"/"問題。

6.基本沒問題了,
內核:
% cd <BUILD_ROOT>/trunk
% make OSLIST=nto CPULIST=x86 hinstall
% make OSLIST=nto CPULIST=x86 install
網路:
% cd <BUILD_ROOT>/tags/6.4.0/GA
% make CPULIST=x86 install

or:
% cd <BUILD_ROOT>/trunk
% make CPULIST=ppc install
等等

---------------------------------------------------------------------
問題:E:\Delores\QNX_SRC\coreos_pub\trunk\utils\r\rtc編譯出錯
無法找到頭文件:
#include <hw/i2c.h>
看了一下common.mk,發現有下面的路徑,聯想fondry27上說的,hardware裡面都是硬體相關的頭文件,公開的源碼里沒有這個目錄。看來是沒辦法編譯rtc了,不過也沒啥用。把rtc目錄剪切掉繼續編譯。
EXTRA_INCVPATH = $(PROJECT_ROOT)/../../../lib/util/public
EXTRA_INCVPATH += $(PROJECT_ROOT)/../../../hardware/startup/lib/public
(可惜我不懂這是什麼意思,於是我從BSP里隨便找了個i2c.h放到D:\QNX640\target\qnx6\usr\include\hw目錄下)
-----------------------------------------------------------------------------------
(這個我沒遇到,因為我照著先做了,哈)
問題:編譯textmode出錯
找不到頭文件。發現qnx640下根本沒有這些東東。只有從632里復制了。
#include <graphics/display.h>
#include <graphics/disputil.h>
#include <graphics/vbios.h>
從E:\QNX632\target\qnx6\usr\include復制graphics目錄到E:\QNX640\target\qnx6\usr\include下。
編譯textmode通過。

⑸ CodeBlocks 如何搭建一個編譯Qt程序的環境

你肯定也是照著這個做的吧
http://www.qtcn.org/bbs/read.php?tid=11847

你是到哪一步不行的?

⑹ 03 Puerts for Unity 搭建 Ts 編譯環境

在上兩節中,腳本文件內容一直都是 Js。Ts 作為 Js 的超集,不能直接丟進 V8 中運行,其在運行時仍然是以 Js 形式出現的。

所以,還需要搭建 Ts -> Js 的編譯環境。

Ts 編譯器有很多。例如:tsc(親兒子)、esbuild、swc 等...

這里將介紹兩種方案:

可以將以下內容,復制到初始化好的 package.json 中。

這里稍對其內容稍作介紹

在項目目錄下運行 yarn 或 npm install 來拉取依賴到本地,拉取到的所有的依賴都將保存在 node_moles 目錄中。

該文件用於配置 Ts 的 相關配置項

修改文件內容如下,稍後對參數稍作講解:

參數基本說明:

該配置文件主要有以下幾個作用:

對於該配置文件有以下幾個要求:

在 Assets/Editor/ 目錄下(沒有則手動創建該目錄),創建 PuertsConfig.cs 文件,內容如下:

出於輕量和速度考慮,且這里只需要對 Js 進行一些簡單處理,並不需要用到諸如 Webpack、Grunt、Gulp...這些強大的工具。

所以自己擼一個編譯相關的處理腳本,在項目根目錄下創建 Build.js ,其內容如下:

運行 yarn run watch:swc 或 yarn run watch:tsc 啟動監聽編譯,這樣 TypeScript 目錄下所有的 ts 文件有任何改動。都會實時編譯。

在 TypeScript/ 目錄下創建 main.ts 文件,內容如下:

看一下 Assets/StreamingAssets/Scripts/ 有應該有編譯出對應的 Js 文件,如果沒有可以嘗試重新保存一下文件或執行 yarn run build:tsc 手動編譯(只編譯一次)。

試著運行下游戲試試吧!

⑺ 如何在mac下搭建C/C++,Java的編譯環境

步驟如下:
1. Mac OS X 本身已經安裝好 jdk,所以搭建 Java Eclipse環境很簡單,只需要下載適合系統的 Eclipse即可,首先查看系統是幾位的(點擊 Mac 屏幕左上角的蘋果 Logo,選擇「關於本機」,在彈出的方形窗口裡點擊「更多信息…」按鈕,再點擊"系統報告…"按鈕,在「軟體」一欄就能看到目前你的蘋果電腦 Mac OS X 系統是否開啟 64 位運算了。)
2.下載 Eclipse( Java 和 C/C++的都需要)http://www.eclipse.org/downloads/
3.安裝 gcc編譯器 XCode(為 Eclipse Java集成 C/C++做准備)。
判斷系統里是否已經安裝 gcc編譯器的方法是,打開一個終端窗口(在實用工具文件夾里),輸入命令 g++,沒有則輸出 command not found,若安裝了則輸出 not input files。 XCode在 mac電腦的隨機安裝光碟里就有,最新版可以上蘋果官網上下載(http://developer.apple.com/technologies/xcode.html),但是需要注冊一個 Apple Developer帳號後才能下載。按照安裝程序步驟進行安裝就可以了。 安裝完後打開xcode,Preferences裡面有個Downloads裡面有個components選項,裡面有個command line tools 安裝上即可。
4. Eclipse整合 Java與 C/C++
壓縮剛下載下來的兩個版本Eclipse (注意放在不同的地方,防止因為文件名相同覆蓋),然後將C/C++ 版本的Eclipse 裡面的plugins 文件夾中的內容全部復制,粘貼到Java 版本的Eclipse 裡面的plugins 文件夾下面(注意:不能覆蓋已有的文件或文件夾),OK 工具都弄好了,現在就剩下測試了。

5. 先創建一個 Java工程

6. 創建一個 C++項目

7. 編譯、運行程序

⑻ MTK的開發環境怎麼搭建

一、開發環境設立
以下表述中提到的相關壓縮包或安裝文件到華禹ftp伺服器下載,部分文件要到群共享裡面下,那裡是最新的。
華禹ftp伺服器:IP:220.113.15.15,帳號為study-bbs.com,密碼為study-bbs0304
P1300的QQ群號: 15762255
P1300_Build_Guide.rar來自ftp伺服器,「華禹\MTK相關部分」目錄下
手機開發板C語言開發視頻.rar來自ftp伺服器,「華禹\MTK相關部分」目錄下
huayu109_ads1.2.rar來自ftp伺服器,「華禹\旋風001手機模塊\1.工具類」目錄下
huayu102_ADS12_Patch_Windows.rar同上
huayu106_perlzip.rar同上
huayu108_SourceInsight3.5.rar同上
huayu101_p1300軟體使用工具及開發指南.rar同上
huayu201_P1300_V1.7_Release.rar文件來自群共享
huayu203_P1300_V1.7_Release_patch.rar文件來自群共享
FlashTool_v3.0844.00.rar文件來自群共享
1、開發主機要求及所需工具:
操作系統:Windows 2000, WinXP. 推薦Windows 2000 with SP2 or later.
編 譯 器:ADS (Arm Developer Suite) v1.2 [Build 842]
Perl解析:ActivePerl, 推薦使用ActivePerl 5.6.1版本
模擬工具:MTK PC Simulator
跟蹤工具:Catcher_L1 v3.10.01,從串口輸出調試信息,只做普通UI應用的話,大致不會用到,用PC模擬工具就好了
燒錄工具:FlashTool_UI v3.1.05 或 FlashTool_v3.0844.00
其他:PL2303_Driver_XP2K v20,這是下載線用到的USB串口驅動,以前機器上裝過PL2303驅動的就不必再裝了
二、開發環境建立過程:
新建一個目錄,英文的好了,否則有些工具不認識中文路徑,這里以E:\MTK_P1300為例說明,下面我用文字和圖片簡單說明下安裝過程,更詳細的安裝過程可以看壓縮文件「手機開發板C語言開發視頻.rar」中的Flash文件「P1300_Build_Env.swf」。
(1)安裝ADS1.2
解壓文件huayu109_ads1.2.rar到某個目錄,比如說解壓到「E:\MTK_P1300」,解壓完後運行「E:\MTK_P1300\ADS1.2\Setup.exe」,一路按下一步,最後安裝License時選定文件「E:\MTK_P1300\ADS1.2\CRACK\ license.dat」,然後接著一路下一步直到安裝完。安裝完後刪掉目錄「E:\MTK_P1300\ADS1.2\」,節省磁碟空間。
(2)安裝ADS補丁
運行huayu102_ADS12_Patch_Windows.rar壓縮文件中的ADS_Patch_Window.exe,這是個自解壓的壓縮文件,選Unzip解壓到上一步ADS的安裝目錄(預設是C:\Program Files\ARM\ADSv1_2),解壓過程中如果問到是否覆蓋,全部選覆蓋好了。
(3)安裝腳本解釋器Perl
直接運行壓縮包huayu106_perlzip.rar裡面擴展名為msi的安裝文件,預設安裝就好,一路Next,呵呵。
上述幾步完成後,編譯環境基本建立,此時可以開一個dos窗(開始菜單->運行->輸入cmd->確定)看一下,安裝正常應該能順利執行以下命令,如下圖:
注意看版本號,應該是ADS1.2 [Build 842],不是的話可能沒打補丁,或補丁打的位置不對,請看第2步ADS補丁部分的說明並重新打一次,直到版本號對為止,哈哈。
這是perl解釋器的運行畫面。
注1:上述安裝過程會自動創建編譯環境所需的環境變數,如果發現編譯不正常了,可能是安裝了其他編譯工具導致沖突,這時建議查看下系統環境變數,把Perl和ADS的安裝目錄調到最前面,同時從path中去掉可能會產生沖突的編譯工具鏈的路徑(例如winavr),如下圖所示(我是安裝到D盤滴,預設是C盤,不過我C盤幾乎被我塞滿了):
如果嫌改path麻煩(因為要用到其他編譯工具鏈的時候還得改回去),還有一種辦法,就是改make.bat批處理,具體見注4中相關說明。
注2: 如果安裝ADS時,改變了默認安裝路徑,需要修改源碼中的設置,源碼目錄樹解壓過程見模擬器編譯環節相關介紹。
1.             make\Option.mak  
2.             ----------------------------------  
3.             ifeq ($(strip $(COMPILER)),ADS)  
4.           DIR_ARM=  c:\progra~1\arm\adsv1_2  # 修改這里 
5.           DIR_ARM := $(strip $(DIR_ARM))  
6.           DIR_TOOL   =  $(DIR_ARM)\bin  
7.           DIR_ARMLIB =  $(DIR_ARM)\lib  
8.           DIR_ARMINC =  $(DIR_ARM)\include  
9.             endif  
10.       ------------------------------------------------ 
比如改裝到D盤了,這里把紅色部分「c」改成「d」就好了
(4)代碼編輯環境
運行壓縮文件huayu108_Source Insight3.5.rar中的安裝文件安裝即可。至於編輯器,這個看個人喜好了,不過Source Inside看代碼蠻方便的。
(5)PC機模擬器
模擬器MTK PC Simulator是用來在PC上模擬調試用的,要安裝VC6 SP6(同時要安裝Uuicode 靜態和動態庫,沒有裝Unicode庫的可以用「huayu103_MTK模擬器DLL補丁.zip」中的庫,拷到系統目錄「%windir%\system32」下即可)。我機器上的VC是有裝Unicode庫的,沒裝過Unicode庫的如果在模擬器編譯或運行中出現問題,建議重裝下VC6,安裝時勾選Unicode庫,並打上相關補丁到SP6。
模擬器能模擬真機的大部分行為,這樣能給調試帶來很大便利,不需要每次改動都要燒錄。
模擬器要從源碼編譯,解壓壓縮包「huayu201_P1300_V1.7_Release.rar」裡面的文件「HUAYU_P1300_V1.7_Release.rar」到目錄「E:\MTK_P1300」,此時會出現目錄「E:\MTK_P1300\P1300_V1.7_Release」,這就是P1300的代碼目錄樹了;接著打上最新的補丁,解壓壓縮包「huayu203_P1300_V1.7_Release_patch.rar」裡面的壓縮文件「HUAYU_P1300_V1.7_Release_patch.rar」到目錄
「E:\MTK_P1300\P1300_V1.7_Release」,解壓時選擇全覆蓋以替換被修改過的文件,打補丁之前對目錄樹裡面的文件進行修改過的,需要手動再加上去。
編譯PC模擬器之前需要先把剛才上面得到的目錄樹build一次,開一個dos窗,盤符和目錄轉到代碼目錄樹對應的盤符和目錄,例如:
1.              E:  
2.             cd E:\MTK_P1300\P1300_V1.7_Release\  
3.           make new 
注3:第一次make的時候要用「make new」,make new的時間比較長(慢的機器搞不好要2小時以上),編譯過程中間會出現一些文件找不到的信息,只要編譯過程沒意外終止,那些信息可以忽略。編譯日誌文件位置: build\NEOTEL25_06B\log\,要查看編譯過程有啥問題就看這個目錄下的文件了;生成的bin文件位置: build\NEOTEL25_06B\*.bin,下載燒錄就是燒bin文件。
這里順帶介紹下build的命令格式:
make new 清除後重新編譯整個項目
make resgen 重新生成資源
make remake重新編譯鏈接項目
make viewlog xxx 查看模塊xxx的編譯日誌
make查看可以用make選項幫助信息
注4:如果機器上裝了其他gcc編譯工具鏈(比如winavr之類)的話可能要手動改下Path,否則編譯會出錯,修改Path的方法見注1,也可以修改批處理文件「E:\MTK_P1300\P1300_V1.7_Release\make.bat」,在「perl make2.pl %*」之前加上下面兩句:
1.           set PERL5LIB=D:\perl\lib  
2.           set PATH=D:\perl\bin;d:\progra~1\arm\adsv1_2\bin;E:\MTK_P1300\P1300_V1.7_Release\tools;c:\windows\system32;c:\windows;c:\windows\system 
注意,上面的路徑是我機器上的,不是預設安裝路徑,要根據自己的實際安裝路徑做修改。
下面開始編譯PC模擬器了,用VC6打開工程文件「E:\MTK_P1300\P1300_V1.7_Release\plutommi\mmi\ PC_Simulator.dsw」,然後開始編譯,編譯時間比較長,具體看機器配置了,這時又可以干點別的啥了,呵呵。
因為模擬器工程涉及文件較多,編譯費時,建議編譯過程中電腦上少開窗口,特別是網路類的,如QQ,有時會發現開QQ後,編譯過程中VC會掛死,呵呵。有可能是開QQ後防火牆過濾網路數據佔用較多系統資源,如果發現VC編譯特別慢或乾脆掛死,可以重啟動一下電腦,只開必要的窗口,然後開始編譯。
如果編譯過程中發現怪異的問題,如:
1.           incomingstringiddef.h(120) : error C2059: syntax error : 'constant'    
2.           或者 
3.           error C2065: 'STR_CM_REDIAL' : undeclared identifier   
4.           之類 
5.            
這個時侯你可能需要看一下你VC相關路徑的設置順序,如下圖:
把VC原本的頭文件路徑調整到最前面,我剛開始編譯的時候SDK的頭文件在前面,編譯總是通不過,改一下就好了,庫也一樣都調整下比較保險,呵呵。
(6)Tracer跟蹤工具
解壓文件P1300_Build_Guide.rar到E:\MTK_P1300,然後在文件管理器進入目錄「E:\MTK_P1300\P1300_Build_Guide」,接著解壓Catcher_L1_v3.10.01.zip到當前目錄下的Catcher_L1_v3.10.01子目錄,進入子目錄Catcher_L1_v3.10.01,發送一個Catcher.exe的快捷方式到桌面。
在需要用到TRACE的時候,在代碼中使用函數
void kal_prompt_trace(mole_type mod_id, const kal_char *fmt,...); 列印需要查看的信息,使用Catcher跟蹤查看。
這個有點類似Linux的Kernel Debug工具,具體使用方法見文檔《cather使用手冊.doc》,這個文檔可在壓縮包「huayu101_p1300軟體使用工具及開發指南.rar」裡面找到。
(7)燒錄工具
解壓文件「E:\MTK_P1300\P1300_Build_Guide\ FlashTool_UI_exe_v3.1.05.zip」到當前目錄,然後進入目錄「E:\MTK_P1300\P1300_Build_Guide\FlashTool_v3.1.05」,發送一個Flash_tool.exe的快捷方式到桌面好了。
還有個下載工具FlashTool_v3.0844.00.rar,也是不用安裝,解壓後直接用的,據說燒錄速度比上面那個快。
具體使用方法見文檔《flash_tool_MT平台使用教程.doc》,這個文檔可在壓縮包「huayu101_p1300軟體使用工具及開發指南.rar」裡面找到。
(8)USB串口下載線驅動
運行壓縮文件
1.           「E:\MTK_P1300\P1300_Build_Guide\ PL2303_Driver_XP2K_v20.zip」 
裡面的可執行文件進行安裝,一路下一步,這里不再贅述。
nucleus實時操作系統MTK手機軟體系統工程和配置簡介
MTK使用了nucleus實時操作系統,在其上做了個內核抽象層的封裝,以適應多種實時操作系統,如oscar、ThreadX、nucleus。整個軟體系統包括nucleus操作系統、平台設備驅動、協議棧、文件系統、WGUI、MMI、J2ME等。在這里MMI部分幾乎包括了操作系統內核、協議棧、文件系統之上的所有部分,其中WGUI也在其中。
MTK的PC模擬版使用VC的編譯器和鏈接器生成,ARM版使用ADS1.2的編譯器和鏈接器生成。因為MTK的整個軟體系統是一個很龐大而且復雜的工程,並且要支持多個MTK的產品系列和多家客戶的客戶化支持,使用集成開發環境(IDE)已經無法勝任,而且很難做到整個工程的自動構建和資源、代碼的生成。所以MTK的軟體系統使用了windows下的GNU開發工具鏈(MinGW)來進行工程的管理、配置和構建,MTK將MinGW放到了第三方工具中。
另外還使用了perl腳本來解析用戶輸入的命令行參數,因此第三方工具中還包含了ActivePerl(windows下的perl解釋器)。不過,整個軟體系統並沒有使用MinGW的全部工具,好象只使用了make這個工具,由幾個Makefile控制了構建的過程,在編譯和鏈接時根據最終生成PC模擬版還是ARM版而分別調用VC的編譯器和鏈接器或ADS1.2的編譯器和鏈接器。

⑼ 如何搭建 android 開發環境

一.認識android的架構
Android其本質就是在標準的Linux系統上增加了Java虛擬機Dalvik,並在Dalvik虛擬機上搭建了一個JAVA的application framework,所有的應用程序都是基於JAVA的application framework之上。
android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和linux核心層。
二.搭建環境
搭建開發環境
對國內的開發者來說最痛苦的是無法去訪問android開發網站。為了更好的認識世界,對程序員來說,會翻牆也是的一門技術,帶你去領略牆外的世界,好了,不廢話了, 國內開發者訪問(androiddevtools) 上面已經有了所有你要的資源,同時可以下載到我們的主角framework
但是這樣的搭建只能去閱讀源代碼,我們無法去更進一步去實現自己的rom,我們看到錘子的系統在早期的開放rom是自己從新實現了framework的代碼,現在看起來他成功了,所以我們還要去搭建android系統的源碼編譯環境。
搭建源碼編譯環境

三.開始主題
在一開始寫c程序的時候都有一個運行的入口,比如
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
//這里的main就是應用的入口
int main(int argc, const char * argv[]){
return 0;
}
在計算機網路原理中我們用socket實現一個伺服器端,不斷的接聽客戶端的訪問,而且他的代碼是這樣實現的:
#include <winsock2.h>
#pragma comment(lib, "WS2_32.lib")
#include <stdio.h>
void main()
{
WORD wVersionRequested;//版本號
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 2);//2.2版本的套接字
//載入套接字型檔,如果失敗返回
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
//判斷高低位元組是不是2,如果不是2.2的版本則退出
if (LOBYTE(wsaData.wVersion) != 2 ||
HIBYTE(wsaData.wVersion) != 2)
{
return;
}
//創建流式套接字,基於TCP(SOCK_STREAM)
SOCKET socSrv = socket(AF_INET, SOCK_STREAM, 0);
//Socket地址結構體的創建
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//轉換Unsigned long型為網路位元組序格
addrSrv.sin_family = AF_INET;//指定地址簇
addrSrv.sin_port = htons(6000);
//指定埠號,除sin_family參數外,其它參數都是網路位元組序,因此需要轉換
//將套接字綁定到一個埠號和本地地址上
bind(socSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//必須用sizeof,strlen不行
listen(socSrv, 5);
SOCKADDR_IN addrClient;//字義用來接收客戶端Socket的結構體
int len = sizeof(SOCKADDR);//初始化參數,這個參數必須進行初始化,sizeof
//循環等待接受客戶端發送請求
while (1)
{
//等待客戶請求到來;當請求到來後,接受連接請求,
//返回一個新的對應於此次連接的套接字(accept)。
//此時程序在此發生阻塞
SOCKET sockConn = accept(socSrv, (SOCKADDR*)&addrClient, &len);
char sendBuf[100];
sprintf(sendBuf, "Welcome %s to JoyChou",
inet_ntoa(addrClient.sin_addr));//格式化輸出
//用返回的套接字和客戶端進行通信
send(sockConn, sendBuf, strlen(sendBuf)+1, 0);//多發送一個位元組
//接收數據
char recvBuf[100];
recv(sockConn, recvBuf, 100, 0);
printf("%s\\n", recvBuf);
closesocket(sockConn);
}
}
他採用了一個while死循環去監聽客戶端的請求。

先上源代碼
public final class ActivityThread {
public static void main(String[] args) {
SamplingProfilerIntegration.start();
CloseGuard.setEnabled(false);
Environment.initForCurrentUser();
EventLogger.setReporter(new EventLoggingReporter());
Security.addProvider(new AndroidKeyStoreProvider());
final File configDir = Environment.getUserConfigDirectory(UserHandle.myUserId());
TrustedCertificateStore.setDefaultUserDirectory(configDir);
Process.setArgV0("<pre-initialized>");
Looper.prepareMainLooper();
//從中可以看到為app開辟了一個線程進入了looper之中
ActivityThread thread = new ActivityThread();
thread.attach(false);
if (sMainThreadHandler == null) {
sMainThreadHandler = thread.getHandler();
}
AsyncTask.init();
if (false) {
Looper.myLooper().setMessageLogging(new
LogPrinter(Log.DEBUG, "ActivityThread"));
}
Looper.loop();
throw new RuntimeException("Main thread loop unexpectedly exited");
}
}
看到源碼失望了,沒有一個while循環啊,其實用了他方法實現
//用一個looper的機制循環監聽響應
Looper.prepareMainLooper();
Looper.loop();
進一步深入代碼
public static void loop() {
final Looper me = myLooper();
if (me == null) {
throw new RuntimeException("No Looper; Looper.prepare() wasn't called on this thread.");
}
final MessageQueue queue = me.mQueue;
Binder.clearCallingIdentity();
final long ident = Binder.clearCallingIdentity();
// 在這里看到了一個循環監聽消息
for (;;) {
Message msg = queue.next(); // might block
if (msg == null) {
// No message indicates that the message queue is quitting.
return;
}
Printer logging = me.mLogging;
if (logging != null) {
logging.println(">>>>> Dispatching to " + msg.target + " " +
msg.callback + ": " + msg.what);
}
msg.target.dispatchMessage(msg);
if (logging != null) {
logging.println("<<<<< Finished to " + msg.target + " " + msg.callback);
}
// Make sure that ring the course of dispatching the
// identity of the thread wasn't corrupted.
final long newIdent = Binder.clearCallingIdentity();
if (ident != newIdent) {
Log.wtf(TAG, "Thread identity changed from 0x"
+ Long.toHexString(ident) + " to 0x"
+ Long.toHexString(newIdent) + " while dispatching to "
+ msg.target.getClass().getName() + " "
+ msg.callback + " what=" + msg.what);
}
msg.recycleUnchecked();
}
}

閱讀全文

與君正t10編譯環境搭建相關的資料

熱點內容
linux禁止訪問某個ip 瀏覽:597
雲伺服器添加多個主機 瀏覽:285
linux設置lang 瀏覽:439
怎麼把pdf圖紙轉換成cad 瀏覽:16
伺服器掃雷怎麼辦 瀏覽:295
米哈游聖遺物掉落演算法 瀏覽:201
伺服器禁止mac地址訪問 瀏覽:982
南昌社保app如何下載 瀏覽:197
如何編譯輸出分數 瀏覽:799
雷電模擬器無法連接伺服器怎麼辦 瀏覽:745
學習唱歌應該用什麼app 瀏覽:594
封面選擇演算法 瀏覽:631
合並pdf文件mac 瀏覽:269
快點app在哪裡放歌 瀏覽:833
tftp上傳文件命令 瀏覽:587
新時代交互英語軟體伺服器地址 瀏覽:782
安卓傳數據到已激活蘋果怎麼傳 瀏覽:973
化妝pdf 瀏覽:137
編程語言專業難學嗎 瀏覽:492
酷狗的dns伺服器是什麼 瀏覽:752