當前位置:首頁 » 編程軟體 » 交叉編譯valgrind

交叉編譯valgrind

發布時間: 2022-06-25 08:18:41

① ARM下面Valgrind如何才能夠交叉編譯通過

使用交叉編譯工具鏈,在編譯選項中指定具體的arm處理器架構

② 自學 linux 嵌入式操作系統,我的電腦上需要安裝什麼學習平台跪求,一定採納

1.虛擬機工具VMware workstation8/9
2.在VMware里安裝ubuntu
3.安裝好ubuntu後安裝GCC,用來編譯C程序。
4.安裝VM tools用來與主機交換文件。
5.開發C程序用VI/VIM就夠了,如果會C++,要開發圖形界面,安裝Qt。
6.最好買套開發板,2440或者6410都可以,用來練習移植系統和應用程序。

③ MeeGo MeeGo1.2 Harmattan是什麼

Harmattan操作系統
Harmattan(哈麥丹)操作系統為MeeGo的1.2諾基亞(通常簡稱為哈麥丹 哈麥丹 在開發文檔)是一個成熟的,功能豐富的軟體平台,旨在配合諾基亞的最新尖端設備。哈麥丹允許開發人員輕松創建漂亮的應用程序使用先進設備,最先進的Qt應用程序的框架。
哈麥丹是最開放的移動軟體平台之一。基礎平台是開源的,該工具是開源的,和大多數的應用框架開源。這留下了潛在的開發環境,工具,以及提供廣泛的文件。
MeeGo的1.2哈麥丹平台SDK提供的工具和和開發本地應用和哈麥丹系統級的組件資源。您可以訪問設備的功能更深層和發展平台。哈麥丹平台SDK是基於Scratchbox的交叉編譯環境,並使用完整的Linux工具(例如,自動工具和Valgrind)。Ovi商店,為移動應用成熟的分銷渠道,為分發應用。它從未如此簡單的設計,開發和分發新的諾基亞設備軟體。

④ 如何對lighttpd進行交叉編譯安裝並配置lighttpdweb伺服器

1. 編譯、安裝
1.1. 先到lighttpd官網下載對應版本的軟體包:
http://www.lighttpd.net/
我下載的是 lighttpd-1.4.30.tar.gz
1.2. 將壓縮解壓到任意目錄(我的是 /root/Desktop/common)得到文件夾 lighttpd-1.4.30
1.3. 在文件夾 lighttpd-1.4.30 中創建shell腳本,命名為:configure-arm.sh
1.4. 在shell腳本 configure-arm.sh 中輸入如下代碼:
#! /bin/sh
CC=arm-linux-gcc
AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib
STRIP=arm-linux-strip ./configure --prefix=/opt/web/lighttpd-1.4.30-arm
--host=arm-linux --build=i686-pc-linux --disable-FEATURE --enable-shared
--disable-static --disable-lfs --disable-ipv6 --without-PACKAGE
--without-valgrind --without-openssl --without-kerberos5 --without-pcre
--without-zlib --without-bzip2 --without-lua

1.5. 打開控制台,cd進入 lighttpd-1.4.30 目錄
1.6. 給 configure-arm.sh 文件添加可執行屬性,執行命令:
chmod +x configure-arm.sh
1.7. 配置lighttpd,執行命令:
./configure-arm.sh
1.8. 編譯lighttpd,執行命令:
make
1.9. 安裝lighttpd,執行命令:
make install

⑤ 編譯android 源碼需要sdk環境嗎

下面是android學習手冊,可以查看編譯源碼,360手機助手中下載,

編譯環境:ubuntu9.10,widnows平台目前不被支持。

1)安裝必要的軟體環境

$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

官方推薦的就是上面這些,如果在編譯過程中發現某些命令找不到,就apt-get它。可能需要的包還有:

$ sudo apt-get install make
$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install libc6-dev

$ sudo apt-get install patch
$ sudo apt-get install texinfo

$ sudo apt-get install zlib1g-dev
$ sudo apt-get install valgrind
$ sudo apt-get install python2.5(或者更高版本)

需要注意的是,官方文檔說如果用sun-java6-jdk可出問題,得要用sun-java5- jdk。經測試發現,如果僅僅make(make不包括make sdk),用sun-java6-jdk是沒有問題的。而make sdk,就會有問題,嚴格來說是在make doc出問題,它需要的javadoc版本為1.5。

因此,我們安裝完sun-java6-jdk後最好再安裝sun-java5-jdk,或者只安裝sun-java5-jdk。這里sun-java6-jdk和sun-java5-jdk都安裝,並只修改javadoc.1.gz和javadoc。因為只有這兩個是make sdk用到的。這樣的話,除了javadoc工具是用1.5版本,其它均用1.6版本:

$ sudo apt-get install sun-java6-jdk

修改javadoc的link:

$ cd /etc/alternatives
$ sudo rm javadoc.1.gz
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$ sudo rm javadoc
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc

2)設置環境變數

$ emacs ~/.bashrc

在.bashrc中新增或整合PATH變數,如下:

#java 程序開發/運行的一些環境變數

JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};

保存後,同步更新:

source ~/.bashrc

3)安裝repo(用來更新android源碼)

創建~/bin目錄,用來存放repo程序,如下:

$ cd ~
$ mkdir bin

並加到環境變數PATH中,在第2步中已經加入。

下載repo腳本並使其可執行:

$ curlhttp://android.git.kernel.org/repo>~/bin/repo
$ chmod a+x ~/bin/repo

4)初始化repo

repo是android對git的一個封裝,簡化了一些git的操作。

創建工程目錄:

$ mkdir android
$ cd android

repo初始化:

$ repo init -u git://android.git.kernel.org/platform/manifest.git

在此過程中需要輸入名字和email地址。初始化成功後,會顯示:

repo initialized in /android

在~/android下會有一個.repo的隱藏目錄。

5)同步源代碼

$ repo sync

這一步要很久很久。

6)編譯android源碼,並得到~/android/out目錄

$ cd ~/andoird
$ make

這一過程很久。

7)在模擬器上運行編譯好的android

編譯好android之後,emulator在~/android/out/host/linux-x86/bin下,ramdisk.img,system.img和userdata.img則在~/android/out/target/proct/generic下。

$ cd ~/android/out/host/linux-x86/bin

增加環境變數

$ emacs ~/.bashrc

在.bashrc中新增環境變數,如下

#java 程序開發/運行的一些環境變數

export ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

最後,同步這些變化:

$ source ~/.bashrc
$ cd ~/android/out/target/proct/generic
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img

最後進入android桌面,就說明成功了。

8)編譯模塊

android中的一個應用程序可以單獨編譯,編譯後要重新生成system.img。

在源碼目錄下執行

$ . build/envsetup.sh (.後面有空格)

就多出一些命令:

- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.

可以加—help查看用法。

我們可以使用mmm來編譯指定目錄的模塊,如編譯聯系人:

$ mmm packages/apps/Contacts/

編完之後生成兩個文件:

out/target/proct/generic/data/app/ContactsTests.apk
out/target/proct/generic/system/app/Contacts.apk

可以使用

$ make snod

重新生成system.img,再運行模擬器。

9)編譯SDK

直接執行make是不包括make sdk的。make sdk用來生成SDK,這樣,我們就可以用與源碼同步的SDK來開發android了。

a)修改/frameworks/base/include/utils/Asset.h

『UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024』 改為 『UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024』

原因是eclipse編譯工程需要大於1.3M的buffer;

b)編譯ADT

由於本人不使用eclipse,所以沒有進行這步;

c)執行make sdk

注意,這里需要的javadoc版本為1.5,所以你需要在步驟1中同時安裝sun-java5-jdk

$ make sdk

編譯很慢。編譯後生成的SDK存放在out/host/linux-x86/sdk/,此目錄下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目錄。android-sdk_eng.xxx_linux-x86就是 SDK目錄。

實際上,當用mmm命令編譯模塊時,一樣會把SDK的輸出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出來。

此後的應用開發,就在該SDK上進行,所以把7)對於~/.bashrc的修改注釋掉,增加如下一行:

export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools

注意要把xxx換成真實的路徑;

d)關於環境變數、android工具的選擇

目前的android工具有:

A、我們從網上下載的Android SDK,如果你下載過的話( tools下有許多android工具,lib/images下有img映像)
B、我們用make sdk編譯出來的SDK( tools下也有許多android工具,lib/images下有img映像)
C、我們用make編譯出來的out目錄( tools下也有許多android工具,lib/images下有img映像)

那麼我們應該用那些工具和img呢?

首先,我們一般不會用A選項的工具和img,因為一般來說它比較舊,也源碼不同步。其次,也不會用C選項的工具和img,因為這些工具和img沒有經過SDK的歸類處理,會有工具和配置找不到的情況;事實上,make sdk產生的很多工具和img,在make編譯出來out目錄的時候,已經編譯產生了,make sdk只是做了而已。

e)安裝、配置ADT
略過;

f)創建Android Virtual Device

編譯出來的SDK是沒有AVD(Android Virtual Device)的,我們可以通過android工具查看:

$ android list

創建AVD:

$ android create avd -t 1 -n myavd

可以android –help來查看上面命令選項的用法。創建中有一些選項,默認就行了。

再執行android list,可以看到AVD存放的位置。

以後每次運行emulator都要加-avd myavd或@myavd選項:

$ emulator -avd myavd

10)編譯linux內核映像

a)准備交叉編譯工具鏈

android代碼樹中有一個prebuilt項目,包含了我們編譯內核所需的交叉編譯工具。

b)設定環境變數

$ emacs ~/.bashrc

增加如下兩行:

export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm

保存後,同步變化:

$ source ~/.bashrc

c)獲得合適的內核源代碼

$ cd ~/android

獲得內核源代碼倉庫

$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git branch

顯示

* android-2.6.27

說明你現在在android-2.6.27這個分支上,也是kernel/common.git的默認主分支。

顯示所有head分支:

$ git branch -a

顯示

* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29

我們選取最新的android-goldfish-2.6.29,其中goldfish是android的模擬器模擬的CPU。

$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch

顯示

android-2.6.27
* android-goldfish-2.6.29

我們已經工作在android-goldfish-2.6.29分支上了。

d)設定交叉編譯參數

打開kernel目錄下的Makefile文件,把CROSS_COMPILE指向剛才下載的prebuilt中的arm-eabi編譯器.

CROSS_COMPILE ?= arm-eabi-

LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,
$(call ld-option, -Wl$(comma)–build-id,))

這一行注釋掉,並且添加一個空的LDFLAGS_BUILD_ID定義,如下:

LDFLAGS_BUILD_ID =

e)編譯內核映像

$ cd ~/android/kernel
$ make goldfish_defconfig
$ make

f)測試生成的內核映像

$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage

⑥ 交叉編譯的valgrind放到arm板怎麼測試

報這個錯誤是因為你沒有進行屏幕校準,或者是pointercal這個文件被刪除了。 運行一下:ts_calibrate重新校準一下,這樣就能重新生成pointercal文件

⑦ 如何選擇嵌入式Linux開發工具

嵌入式Linux具有穩定、可伸縮及開放源代碼等特點,可兼容多種處理器和主機,廣泛適用於各種產品和應用。但是,交叉編譯、設備驅動程序開發/調試,以及更小尺寸等要求對嵌入式Linux開發者來說都是嚴峻的挑戰。為應對這些挑戰,針對嵌入式Linux開發的專用工具應運而生,而且發展十分迅猛。

但是,許多這類開發工具都不兼容非X86平台,而且也沒有很好地實現歸檔備案或集成。在其它開發環境下,組件間的高度集成並沒有完全兌現。因此,要想完全從這些免費的軟體組件開始創建一個完整的跨平台開發環境,開發者應意識到這將需要大量的調研、實施、培訓和維護方面的工作。

Linux是少數既可以在嵌入式設備上運行也可作為開發環境的操作系統之一。這一特性可讓開發者在轉向此開發系統之前於常用硬體(比如X86桌面系統)之上開發、調試和測試應用程序和庫,因此可減少對標准參考平台和指令集模擬器的依賴。這一技術僅適用於應用程序和庫,但不適用於設備驅動程序,因為後者的開發依賴於Linux架構。

開放源代碼團體及一些軟體供應商可提供設備驅動程序開發工具。由於設備驅動程序比標准應用程序距離硬體更近,因此它們的開發比較困難。所幸的
是,Linux桌面系統可以利用一些Windows及其它操作系統所沒有的工具。有足夠經驗開發設備驅動程序的開發人員可能已經習慣將
Linux作為他們的桌面開發系統了。

Linux的快速發展及其桌面方案的不斷涌現提出了一個重要問題:所選擇的工具方案怎樣在不同的Linux分布式系統上運行?它們依賴於主機平台的軟體配置嗎?

有些Linux工具提供獨立於主機平台的開發環境,包括一系列可支持開發工具的應用軟體、庫和實用程序。這一方法幾乎將開發環境與主機配置完全隔離開來,因此主機可以是任何Linux分布式系統,而且任何更新和修改都不會影響開發環境的功能。

這種方法的主要缺點是對存儲空間的要求有所增加――約200MB,因為它自己實際上相當於一個微型Linux分布式系統。

可用的工具

一個嵌入式Linux產品的開發需要幾個階段,包括為目標板配置和構建基本Linux OS;調試應用程序、庫、內核及設備驅動程序/內核模塊;出貨前最終方案的優化、測試和驗證。

有數百種開放源代碼開發工具可供選擇。只要開發者原意花時間和精力去調研、實施和維護一系列各不相同的工具,總能找出一個完整的解決方案,完成幾乎任何開發任務。圖1:開發者必須精確地考慮到這些工具的鬆散集合能提供什麼樣的功能,以及需要付出多大的努力才能形成完整的解決方案。

在Linux應用程序和庫的調試方面,GNU Debugger(GDB)作為一種標准已有幾年的歷史。它是一種命令行程序,由多個不同的圖形用戶界面前端予以支持,每個前端都能以多種方式提供調試控制功能。盡管GDB不是一個完美的方案,但它足夠應對各種調試任務,而且已經得到開放源代碼團體的廣泛支持。

Linux內核或設備驅動程序的調試要比應用程序的調試繁瑣得多。

在做調研時,以下方面應特別注意:

什麼調試方法支持要開發產品的硬體?需要什麼內核補丁程序?還需要其它什麼補丁程序?調試界面怎麼樣,如何使用?該工具需要調試內核模塊及處理虛擬地址轉換嗎?還需要其它什麼工具才能提供完整的方案?

經過進一步的調查,開發者往往發現工具A和工具B並沒有提供完全一致的功能,因為它們是在彼此獨立的情況下開發的。結果,開發者必須精確地考慮到這些工具的鬆散集合能提供什麼樣的功能,還需要付出多大的努力才能形成完整的解決方案。

如果不同處理器類型間的集成、可用性、互操作性和移植性很關鍵的話,開發者應考慮購買商用開發工具。這主要是因為將開發一個「免費」方案所付出的努力考慮進去,商用開發工具並不算貴。

Linux BSP

Linux系統有兩大主要部分:帶設備驅動程序的Linux內核;以及根文件系統,包括系統所需的全部支持應用程序、服務和庫。除了駐留在目標
板上的OS組件外,還需要創建一個由GNU Compiler
Collection構成的交叉編譯環境,為庫和二進製程序(binutils)提供支持。

雖然幾乎每一個組件都可在網上找到,但在硬體或設備驅動程序支持、集成測試信息、交叉編譯指南或軟體兼容性方面卻很難收集到太多信息。盡管開發
者可從網上免費下載各種組件以配置嵌入式Linux操作系統,但每個組件在版本、支持、穩定性和測試等方面的狀態則需要開發者自己決定。然後,開發者還要
完成最後的OS集成和測試,以及為所開發產品提供終身Linux OS維護。

另一方面,嵌入式Linux供應商所提供的商用Linux板支持工具包一般都是經過預先安裝和測試的,而且提供支持和維護。其它須考慮的因素包括Linux桌面主機將會添加不同的庫和內核功能,以及由於組織內的開發者變動而引起的長期維護問題。

品質保證部門一般會執行一系列嚴格的驗證和性能測試,其中包括存儲器泄漏檢測/糾正、代碼優化和任務跟蹤等。那些想利用開放源代碼工具開發面向
非X86平台的嵌入式Linux產品開發者將會發現這一任務甚至要比選擇開放源代碼調試方案難得多。Linux Trace
Toolkit、Valgrind工具及其它存儲器分析程序可完成部分測試和驗證任務。但總的來說,它們缺乏關鍵特性、集成功能及廣泛的硬體支持。這些開
放源代碼分析工具的評估過程與評估調試方案的過程基本相同。

最後的分析就是,一個設計得恰到好處的開發環境應能夠提供商用和開放源代碼兩個世界所具有的最好特性:
◆交鑰匙開發能力;◆易於使用和集成;◆大型工程組織的協調控制;◆品質和支持保證;◆持續性;◆按照自己的判斷力使用開放源代碼的能力

⑧ linux Development Tools 包括哪些軟體

非常多,有幾十個,大家主要使用其中的gcc, make等編譯工具,你可以用/usr/bin/system-config-packages工具(Redhat)查Development-->Development Tools-->Details

⑨ MeeGo 1.2 Harmattan和塞班3有什麼區別

區別大了去了,MeeGo比塞班3智能多了,但是軟體量要少的多
MeeGo的1.2諾基亞(通常簡稱為哈麥丹
哈麥丹
在開發文檔)是一個成熟的,功能豐富的軟體平台,旨在配合諾基亞的最新尖端設備。哈麥丹允許開發人員輕松創建漂亮的應用程序使用先進設備,最先進的Qt應用程序的框架。
哈麥丹是最開放的移動軟體平台之一。基礎平台是開源的,該工具是開源的,和大多數的應用框架開源。這留下了潛在的開發環境,工具,以及提供廣泛的文件。
MeeGo的1.2哈麥丹平台SDK提供的工具和和開發本地應用和哈麥丹系統級的組件資源。您可以訪問設備的功能更深層和發展平台。哈麥丹平台SDK是基於Scratchbox的交叉編譯環境,並使用完整的Linux工具(例如,自動工具和Valgrind)。Ovi商店,為移動應用成熟的分銷渠道,為分發應用。它從未如此簡單的設計,開發和分發新的諾基亞設備軟體。
MeeGo系統,是諾基亞與英特爾當年聯合開發的一個系統。當年初諾基亞宣布與微軟在智能手機領域結成戰略聯盟之後,諾基亞就已經對外宣稱其與英特爾聯合開發的MeeGo系統將會被放棄。而當業內期待諾基亞的下一款重量級手機理應是基於微軟Windows
Phone7的時候,諾基亞卻出乎意料地發布了採用MeeGo系統的N9,更令業內不解的是在發布N9之後,諾基亞CEO史蒂芬·埃洛普(Stephen
Elop)仍堅稱,不管N9在市場上是否成功,未來仍然會放棄MeeGo系統,全面支持微軟的Windows
Phone系統。
不過在中關村網站上看到好像諾基亞還有採用MeeGo系統的

熱點內容
pid演算法調速 發布:2025-02-13 21:20:31 瀏覽:686
腳本中new 發布:2025-02-13 21:00:11 瀏覽:741
什麼配置的筆記本電腦能玩神武 發布:2025-02-13 20:54:40 瀏覽:178
挑選雲伺服器需要注意什麼 發布:2025-02-13 20:53:31 瀏覽:98
加密滴膠卡 發布:2025-02-13 20:30:48 瀏覽:275
javalogin 發布:2025-02-13 20:25:48 瀏覽:427
智聯招聘無法上傳照片 發布:2025-02-13 20:16:03 瀏覽:529
python元素替換list 發布:2025-02-13 20:03:48 瀏覽:773
windows系統賬戶名和密碼是多少 發布:2025-02-13 20:03:02 瀏覽:531
我的世界帶有商店伺服器好嗎 發布:2025-02-13 20:02:50 瀏覽:616