欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python交叉編譯移植到ARM

系統(tǒng) 3124 0

以下內(nèi)容沒有經(jīng)過語言的整理,但是是我真實(shí)的移植過程,僅供參考

源碼下載地址:https://www.python.org/

參考:

https://blog.csdn.net/yyw794/article/details/78059102

https://www.cnblogs.com/pengdonglin137/p/6604471.html

本次移植的是Python-3.6.9? 后來我又移植了3.4.6,大部分一直,只有sh有差別。

我的目錄是:\nfs_root\app\Python\Python-3.6.9

Python2.7.13的交叉編譯,在編譯前需要給Python源碼打上用于交叉編譯的patch,從Python-3.3.1開始,就不需要再打什么patch了,只需要在configure的時(shí)候指定--build和--host參數(shù)即可。

很重要先編譯PC的

因?yàn)樵诮徊婢幾g的時(shí)候需要在PC上面運(yùn)行對應(yīng)版本的Python程序,所以我們需要先編譯和安裝PC上面用的Python ,下面是命令:

            
              ./configure

make
sudo make install
            
          

測試下是否可以了

新建一個(gè)文件:helloword.py

            
              # 該實(shí)例輸出 Hello World!
print('Hello World!')
            
          

運(yùn)行:python3 ./helloword.py

輸出

?

?

PC環(huán)境搭建完成,下面開始編譯arm

這是Python-3.6.4 在3.6.9應(yīng)該也可以使用

            
              #prepare
echo "prepare stage"
arm_install=`pwd`/arm_python
arm_build=`pwd`/arm_build
mkdir $arm_build
mkdir $arm_install
cd `pwd`
#arm comfigure
echo "arm confiure stage"
cd $arm_build
echo ac_cv_file__dev_ptmx=yes > config.site
echo ac_cv_file__dev_ptc=yes >> config.site
export CONFIG_SITE=config.site
../configure \
	--host=arm-fsl-linux-gnueabi \
	--build=i686-linux-gnu \
	--target=arm-fsl-linux-gnueabi \
	--disable-ipv6 \
	--prefix=$arm_install \
	--enable-shared \
	--silent
 
#pc pgen
echo "pc pgen stage"
cd - 
./configure --silent
for args in $@
do
if [ $args = "all" ];then
make --silent && make install --silent
break
fi
done
make Parser/pgen --silent
cd -
cp ../Parser/pgen Parser
#change the pgen time,
# or else the cross compile will replace this pc version pgen. important!!
touch -t 12312359 Parser/pgen
 
#make
echo "make stage"
make python --silent && make -i install
 
#make it smaller
#arm-fsl-linux-gnueabi-strip -s $arm_install/bin/python3.3
exit 0

            
          

?

?

?

這是Python-3.6.9?

            
              #!/bin/bash
#prepare
echo "make clean"
make clean

echo "prepare stage"
arm_install=`pwd`/arm_python
arm_build=`pwd`/arm_build
mkdir $arm_build
mkdir $arm_install
cd `pwd`
#arm comfigure
echo "arm confiure stage"
cd $arm_build

#配置交叉編譯:

#CC為指定C交叉編譯器,我的是arm-fsl-linux-gnueabi-gcc
#CXX為指定C++交叉編譯器,我的是arm-fsl-linux-gnueabi-g++
#AR為ar工具,我的是arm-fsl-linux-gnueabi-ar
#RANLIB為ranlib工具,我的是arm-fsl-linux-gnueabi-ranlib
#Host為目標(biāo)主機(jī),我這里設(shè)置的是arm-fsl-linux-gnueabi
#Build為編譯環(huán)境主機(jī),我的是i386
#Prefix為安裝位置

#配置命令:
../configure \
	CC=arm-fsl-linux-gnueabi-gcc \
	CXX=arm-fsl-linux-gnueabi-g++ \
	AR=arm-fsl-linux-gnueabi-ar \
	RANLIB=arm-fsl-linux-gnueabi-ranlib \
	--host=arm-fsl-linux-gnueabi \
	--build=i386 \
	--disable-ipv6 \
	--prefix=$arm_install \
	ac_cv_file__dev_ptmx=yes \
	ac_cv_file__dev_ptc=yes 
	
echo "make stage"
make HOSTPYTHON=./python \
	HOSTPGEN=./Parser/pgen \
	BLDSHARED="arm-fsl-linux-gnueabi-gcc -shared" \
	CROSS_COMPILE=arm-fsl-linux-gnueabi- \
	CROSS_COMPILE_TARGET=yes \
	HOSTARCH=arm-fsl-linux-gnueabi \
	BUILDARCH=i386
#************************************************
#如果報(bào)錯(cuò)了,則需要刪除下面的內(nèi)容,先使用
#find / -name lsb_release
#查找路徑是否正確別刪錯(cuò)了
#rm -rf /usr/bin/lsb_release
#************************************************
#echo "rm -rf /usr/bin/lsb_release"
#rm -rf /usr/bin/lsb_release
	
echo "make install  stage"
sudo make install HOSTPYTHON=./python \
	BLDSHARED="arm-fsl-linux-gnueabi-gcc -shared" \
	CROSS_COMPILE=arm-fsl-linux-gnueabi- \
	CROSS_COMPILE_TARGET=yes




            
          

用上面我修改的腳本不會報(bào)告下圖中的錯(cuò)誤,遇到的兄弟可以使用后面的語句解決,下面的錯(cuò)誤是在make install時(shí)候出現(xiàn)的

python交叉編譯移植到ARM_第1張圖片

?

subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.

解決方法
find / -name lsb_release
rm -rf /usr/bin/lsb_release

編譯完成后會在下圖中顯示你需要的文件

python交叉編譯移植到ARM_第2張圖片

其中arm_python是需要跑在硬件上的

在開發(fā)板上,運(yùn)行

vi /etc/profile?

添加環(huán)境變量

export PATH=/usr/python/bin:$PATH
export LD_LIBRARY_PATH=/usr/python/lib:$LD_LIBRARY_PATH
?

保存退出。將arm_python下的內(nèi)容拷貝到開發(fā)板上/usr/python下

運(yùn)行:source /etc/profile? 或者重啟你的開發(fā)板

可以使用

echo $LD_LIBRARY_PATH 驗(yàn)證lib

echo $PATH 驗(yàn)證bin

測試python是否移植成功

任意目錄執(zhí)行python3 ./helloworld.py

看到??Hello World! 說明成功了

?

?

?


?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品视频免费视频 | 国产成人免费视频网站高清观看视频 | 青草福利 | 免费视频日韩 | 成人免费观看视频 | 白天操夜夜操 | 国产欧美日韩精品一区 | av日韩一区二区三区 | 国产porn在线 | WWW.亚洲最大夜色伊人 | 99久久久精品| aaa毛片手机在线现看 | 啪啪免费观看 | 污版视频在线观看 | 亚洲一区二区三区视频 | 国产超级乱淫视频播放 | 色哟哟国产成人精品 | 免费视频大片在线观看 | 一区二区三区四区在线观看视频 | 亚洲欧美在线播放 | 日日摸夜夜添免费毛片小说 | 国产在线观看第一页 | 欧美日韩精品一区二区 | 奇米影视777中文久久爱 | 岛国毛片一级一级特级毛片 | 久草在线视频在线 | 成人在线不卡视频 | 欧美日韩不卡 | 国产乱人乱精一区二区视频密 | 国内精品视频免费观看 | 日韩黄色网页 | 久草2018| 国产麻豆剧传媒精品好看的片 | 国产专区在线视频 | 欧美高清色视频在线播放 | 国产成人毛片 | 日本一道在线 | 乳欲人妻办公室奶水在线电影国产 | 国产精品高清在线 | 成人精品一区久久久久 | 久草在线视频资源站 |