娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月16日(星期日)

正在發生

2020年02月16日 | 交叉編譯Python-2.7.13到ARM(aarch32)—— 支持sqlite3

發布者:數據迷航者 來源: eefocus關鍵字:交叉編譯  Python-2  7  ARM  aarch32  sqlite3 手機看文章 掃描二維碼
隨時隨地手機看文章

環境

主機: ubuntu14.04 64bit


開發板: qemu + vexpress-a9 (參考: http://www.cnblogs.com/pengdonglin137/p/6442583.html)


工具鏈: arm-none-linux-gnueabi-gcc  (gcc version 4.8.3 20140320)


Python版本: Python-2.7.13


前面一篇博文(交叉編譯Python-2.7.13到ARM(aarch32)平臺)介紹了移植python到aarch32上面,但是發現有很多模塊都不能用,可以在板子上面執行下面的命令測試一下:


 1 [root@vexpress ]# python /usr/lib/python2.7/test/test___all__.py

 2 Traceback (most recent call last):

 3   File "/usr/lib/python2.7/test/test___all__.py", line 3, in

 4     import unittest

 5   File "/usr/lib/python2.7/unittest/__init__.py", line 58, in

 6     from .result import TestResult

 7   File "/usr/lib/python2.7/unittest/result.py", line 9, in

 8     from . import util

 9   File "/usr/lib/python2.7/unittest/util.py", line 2, in

10     from collections import namedtuple, OrderedDict

11   File "/usr/lib/python2.7/collections.py", line 20, in

12     from _collections import deque, defaultdict

13 ImportError: No module named _collections


可以看到這里找不到_collections模塊。


對比x86_64的編譯結果:


1 ls x86_64/build/lib.linux-x86_64-2.7/

2 array.so*       _codecs_hk.so*       cPickle.so*       _curses_panel.so*  future_builtins.so*  itertools.so*      mmap.so*              parser.so*    _socket.so*   _sysconfigdata.py   time.so*

3 audioop.so*     _codecs_iso2022.so*  crypt.so*         _curses.so*        grp.so*              _json.so*          _multibytecodec.so*   pyexpat.so*   spwd.so*      _sysconfigdata.pyc  unicodedata.so*

4 binascii.so*    _codecs_jp.so*       cStringIO.so*     datetime.so*       _hashlib.so*         linuxaudiodev.so*  _multiprocessing.so*  _random.so*   _sqlite3.so*  _sysconfigdata.pyo  zlib.so*

5 _bisect.so*     _codecs_kr.so*       _csv.so*          _elementtree.so*   _heapq.so*           _locale.so*        nis.so*               readline.so*  _ssl.so*      syslog.so*

6 cmath.so*       _codecs_tw.so*       _ctypes.so*       fcntl.so*          _hotshot.so*         _lsprof.so*        operator.so*          resource.so*  strop.so*     termios.so*

7 _codecs_cn.so*  _collections.so*     _ctypes_test.so*  _functools.so*     _io.so*              math.so*           ossaudiodev.so*       select.so*    _struct.so*   _testcapi.so*


而aarch32的編譯結果:


1 $ls aarch32/build/lib.linux2-arm-2.7/

2 audioop.so*     _codecs_iso2022.so*  _codecs_tw.so*  _ctypes.so*       _elementtree.so*     _json.so*          mmap.so*              nis.so*      resource.so*        termios.so*

3 _codecs_cn.so*  _codecs_jp.so*       crypt.so*       _ctypes_test.so*  future_builtins.so*  linuxaudiodev.so*  _multibytecodec.so*   parser.so*   _sysconfigdata.py   _testcapi.so*

4 _codecs_hk.so*  _codecs_kr.so*       _csv.so*        datetime.so*      _hotshot.so*         _lsprof.so*        _multiprocessing.so*  pyexpat.so*  _sysconfigdata.pyc


可以看到,aarch32上面缺少了很多庫, 比如_collections.so,將來這些庫會被安裝到/usr/lib/python2.7/lib-dynload下面, 所以下面要說的就是將缺少的這些庫弄回來!


正文

1、通過分析setup.py發現問題

在函數build_extensions中剛開始self.extensions中存放的是需要編譯庫, 通過在加打印:


 1 diff --git a/setup.py b/setup.py

 2 index 54054c2..bc16bb1 100644

 3 --- a/setup.py

 4 +++ b/setup.py

 5 @@ -178,6 +178,7 @@ class PyBuildExt(build_ext):

 6  

 7      def build_extensions(self):

 8  

 9 +        print "build_extensions enter."

10          # Detect which modules should be compiled

11          missing = self.detect_modules()

12  

13 @@ -191,6 +192,9 @@ class PyBuildExt(build_ext):

14              extensions.append(ctypes)

15          self.extensions = extensions

16  

17 +        for ext in self.extensions:

18 +            print "extensions: ", ext.name

19 +

20          # Fix up the autodetected modules, prefixing all the source files

21          # with Modules/ and adding Python's include directory to the path.

22          (srcdir,) = sysconfig.get_config_vars('srcdir')

23 @@ -217,6 +221,8 @@ class PyBuildExt(build_ext):

24          # Python header files

25          headers = [sysconfig.get_config_h_filename()]

26          headers += glob(os.path.join(sysconfig.get_path('include'), "*.h"))

27 +

28 +        print "builtin_module_names: ", sys.builtin_module_names

29          for ext in self.extensions[:]:

30              ext.sources = [ find_module_file(filename, moddirlist)

31                              for filename in ext.sources ]

32 @@ -248,10 +254,15 @@ class PyBuildExt(build_ext):

33                  remove_modules.append(line[0])

34              input.close()

35  

36 +        print "remove_modules: ", remove_modules

37 +

38          for ext in self.extensions[:]:

39              if ext.name in remove_modules:

40                  self.extensions.remove(ext)

41  

42 +        for ext in self.extensions[:]:

43 +            print "extensions: ", ext.name

44 +

45          # When you run "make CC=altcc" or something similar, you really want

46          # those environment variables passed into the setup.py phase.  Here's

47          # a small set of useful ones.

48 @@ -1618,13 +1629,13 @@ class PyBuildExt(build_ext):

49  

50  

51          # Platform-specific libraries

52 -        if host_platform == 'linux2':

53 +        if host_platform == 'linux2' or host_platform == 'linux2-arm':

54              # Linux-specific modules

55              exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )

56          else:

57              missing.append('linuxaudiodev')

58  

59 -        if (host_platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',

60 +        if (host_platform in ('linux2','linux2-arm' 'freebsd4', 'freebsd5', 'freebsd6',

61                          'freebsd7', 'freebsd8')

62              or host_platform.startswith("gnukfreebsd")):

63              exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )

64 @@ -1755,6 +1766,10 @@ class PyBuildExt(build_ext):

65  ##         ext = Extension('xx', ['xxmodule.c'])

66  ##         self.extensions.append(ext)

67  

68 +#        print "missing: ", missing

69 +#        for ext in self.extensions:

70 +#            print "extensions: ", ext.name

71 +

72          return missing

73  

74      def detect_tkinter_explicitly(self):

75 @@ -2229,6 +2244,8 @@ Topic :: Software Development

76  """

77  

78  def main():

79 +    print "sys.path: ", sys.path

80 +    print "cross_compiling: ", cross_compiling

81      # turn off warnings when deprecated modules are imported

82      import warnings

83      warnings.filterwarnings("ignore",category=DeprecationWarning)


然后執行./mk2_make.sh可以看到:


 1 sys.path:  ['/home/pengdonglin/src/qemu/python_cross_compile/Python-2.7.13', '/home/pengdonglin/src/qemu/python_cross_compile/aarch32/build/lib.linux2-arm-2.7', '/home/pengdonglin/src/qemu/python_cross_compile/Python-2.7.13/Lib', '/home/pengdonglin/src/qemu/python_cross_compile/Python-2.7.13/Lib/plat-linux2', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload']

[1] [2] [3] [4]
關鍵字:交叉編譯  Python-2  7  ARM  aarch32  sqlite3 引用地址:交叉編譯Python-2.7.13到ARM(aarch32)—— 支持sqlite3

上一篇:Exynos4412的外部中斷是如何安排的?
下一篇:交叉編譯Python-2.7.13到ARM(aarch64)平臺

推薦閱讀

2018年冬季奧運會已經在韓國平昌開幕,VR虛擬現實技術將會在這屆冬奧會中大放異彩。平昌冬奧會官方推出了VR觀看冬奧會賽事的選項,觀眾可以通過VR頭顯來親臨冬奧會比賽的魅力。??NBC和英特爾承包了本次冬奧會的VR內容制作和播送。NBC在冬奧會上依舊采用英特爾的True VR技術對現場比賽進行拍攝,各位觀眾無需守在電視旁,戴上VR眼鏡即可享受與眾不同的視...
日前,美國加利福尼亞州車輛管理局(DMV)發布了《2018年自動駕駛脫離報告》,包括48家獲得加州路測資格公司從2017年12月到2018年11月的路測情況。公司每年上交給DMV報告中,會含有測試車輛的數量、測試里程,以及在測試中脫離的次數,而脫離次數是指在自動駕駛系統遇到無法處理的情況時,駕駛員的人工干預次數。需要指出的是,所有數據都是企業自己提交,...
電路設計的基本過程一般是這樣的:需求分析——元件選型——原理圖設計——PCB設計——焊接調試。▼需求分析:在這里,主要是確定小車需要哪些模塊、外設或接口。首先,STM32最小系統是必須的,這是小車控制的核心。然后小車的兩個輪子需要兩個H橋驅動和編碼器接口。需要陀螺儀感知小車的姿態(包括傾角,轉向角,角速度等)。需要一些調試和指示用的外設...

史海拾趣

問答坊 | AI 解惑

初學嵌入式開發ARM的學習方法(轉載)

這個題目很大,給人一種感覺我好像很成功,其實不然。實際上自己水平不高,甚至很低,但是做過了一些曲折的學習道路,同時把自己真實的學習歷程表達出來,希望對后來者有借鑒的意義,甚幸!     工作三年、幾成廢人!      我2000年畢業 ...…

查看全部問答∨

TFT彩圖顯示法 詳細資料

這是一份 TFT彩圖顯示法 很詳細資料 足夠可以讓你玩弄手機液晶屏…

查看全部問答∨

推薦幾款可用在2410的gprs模塊

要求提供的動態鏈接庫、源代碼可以在evc上執行, 就是說它可以支持arm的嵌入式系統,arm的操作系統wince。 價錢、型號,最好有網站介紹。 …

查看全部問答∨

要學習51,是買學習板還是自己焊比較好呢?

要學習51,是買學習板還是自己焊比較好呢?自己焊是在萬用板上焊的吧?…

查看全部問答∨

Wince 5.0 上編寫的程序如何打包?用C#寫的?

有兩個,一個是Program Files 文件夾,一個是應用程序文件夾。 分別代表什么什么意思,可以可以給我講一下…

查看全部問答∨

求助:關于pxa270實現4級灰度控制的驅動程序

我們使用PXA270平臺,wince 5.0操作系統??蛻籼峁┝艘黄瑔紊獿CD,4bit輸入,每1個bit代表1個點,每個點都有ON/OFF兩種狀態。分辨率640*480。LCD中內置了一顆Max5484來控制灰度??蛻粢笪覀冏龅?bpp,16級灰度。 但是Max5484這個芯片只能調整整 ...…

查看全部問答∨

瀏覽器的思想

各位高手:     我最近要寫一個瀏覽器(c語言,gtk ,linux),有沒有寫過的阿,給個提示呀 …

查看全部問答∨

幫忙啊

有哪位好心人把windows live id號碼借我用一下啊,我要下載個wdk,最近注冊了好幾次都沒有成功,是不是不開放注冊了?…

查看全部問答∨

Verilog 里的參數 是不是不能綜合到硬件電路上而只能仿真中用???

Verilog 里的參數 是不是不能綜合到硬件電路上而只能仿真中用啊比如圖中的 parameter clkdivider = 25000000/440/2;在下載到芯片里后 就有個寄存器里存了  clkdivider = 25000000/440/2這個值?求高手指導 [ 本帖最后由 wzyuliyang 于 2 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 中卫市| 开平市| 保康县| 浙江省| 盐津县| 阳曲县| 余干县| 个旧市| 怀仁县| 张家口市| 葫芦岛市| 平顶山市| 两当县| 桃园市| 和顺县| 九龙城区| 金门县| 上蔡县| 永顺县| 陇南市| 扶绥县| 崇州市| 临高县| 丽水市| 舒城县| 平阴县| 山东| 西藏| 英吉沙县| 得荣县| 宜州市| 济源市| 调兵山市| 德令哈市| 江达县| 红原县| 上蔡县| 台湾省| 来安县| 武邑县| 崇信县|