Chcem debugovať aplikáciu ARM na zariadeniach, ako je napríklad systém Android, radšej používam gdb (verziu ARM) ako gdb s gdbserver na ladenie, pretože existuje prístrojová doska , vizuálne rozhranie pre GDB v Pythone.
Musí spolupracovať s gdb (verzia ARM) na zariadeniach, takže musím prekročiť kompiláciu ARM verzie gdb s pythonom, príkaz sa používa nižšie:
./configure --host=arm-linux-gnueabi --target=arm-linux-gnueabi --with-python=/usr/bin
Ale nakoniec sa objavilo chybové hlásenie:
configure:8096: checking whether to use python
configure:8098: result: /usr/bin/
configure:8316: checking for python2.7
configure:8334: arm-linux-gnueabi-gcc -o conftest -g -O2 -I/usr/include/python2.7 -I/usr/include/python2.7 conftest.c -ldl -ltermcap -lm -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions >&5
In file included from /usr/include/python2.7/Python.h:8:0,
from conftest.c:50:
/usr/include/python2.7/pyconfig.h:15:52: fatal error: arm-linux-gnueabi/python2.7/pyconfig.h: No such file or directory
compilation terminated.
Potom nájdem riadok 15 v /usr/include/python2.7/pyconfig.h
, ako je uvedené nižšie:
# elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
#include <arm-linux-gnueabi/python2.7/pyconfig.h>
Tu je bod, len to mám x86_64-linux-gnu/python2.7/pyconfig.h
v /usr/include
, ako môžem dostať arm-linux-gnueabi/python2.7/pyconfig.h
? Už sa mi to podarí nainštalovať python2.7-dev
.
odpovede:
10 pre odpoveď č. 1Keď sa pokúšam, narazil som na tento problémskompilujte modul pytónového obalu, ktorý je postavený na SWIG, ale zdá sa, že sa to stane každému, kto si skompiluje kód C v systéme Debian.
Zdá sa, že balíky Debian python-dev nie súnastaviť s hlavičkovými súbormi na uľahčenie krížovej kompilácie, ale je možné ísť manuálne. Nie som si istý, či ide o chybu typu python alebo balíčkovú chybu v balíku Debian, a nebudem skúmaný, či sa vzťahuje na iné distribúcie.
pyconfig.h nastaví preprocesor, aby určil zdrojový kód pythonu, ktorý sa týka závislostí od platformy, ako je endianness a veľkosti dátových typov, takže správne pyconfig.h je určite potrebné na správnu kompiláciu zdroja pythonu. Našťastie by mal byť súbor pyconfig.h jediným súborom, ktorý potrebujete odchytiť samostatne a je dostupný z balíka Debian python-dev pre vašu cieľovú platformu.
môžete prevziať balík súborov pre armeabi alebo akúkoľvek inú architektúru https://packages.debian.org/jessie/libpython2.7-dev a extrahujte samotný adresár sami alebo použite nasledovné príkazy na stiahnutie balíka a skopírujte správne súbory pre armeabi do / usr / local / include
wget http://http.us.debian.org/debian/pool/main/p/python2.7/libpython2.7-dev_2.7.9-2_armel.deb
dpkg -x libpython2.7-dev_2.7.9-2_armel.deb libpython2.7-dev_2.7.9-2_armel_extracted
sudo cp -r libpython2.7-dev_2.7.9-2_armel_extracted/usr/include/arm-linux-gnueabi/ /usr/local/include/
rm -r libpython2.7-dev_2.7.9-2_armel*
Všimnite si, že na niektorých krížových kompilátorov budete musieť pridať -I /usr/local/include
na možnosti kompilátora, ak v predvolenom nastavení nevyhľadáva toto miesto, ale pre mňa je to lepšie ako zmena / usr / include a riziko, že vaše zmeny budú vymazané operačným systémom