arm-linux

Cross compiling c application library referring other libraries symbolically linked

99封情书 提交于 2021-01-29 08:17:08
问题 I am trying to build an application(libnodeapplication) which is dependent on a shared library(libnode.so) which in turn depends on another shared library(libgentoo-5.so.100) which I have pasted at the same location as the libnode(inside /usr/lib/) Problem is second dependent library is symbolically linked to another file what changes are needed in the compile command to build it successfully(for symbolically linkd files refrened in the shared library) I tried with -Wl,-rpath=<path to usr/lib

arm-linux的gdb移植

爷,独闯天下 提交于 2020-12-13 04:59:01
arm-linux的gdb移植分为两种情况.一种是交叉调试版。 这一种模式是需要编译一个arm-linux版本gdbserver (GDB的stub模块).然后再编译一个X86版本交叉调试的gdb.为了与桌面版本身的gdb 区别开来,一般改名为 arm-linux-gdb。两者通过串口或者网络进行互联。 还有一种是干脆把整个gdb移植成一个ARM的本地版。在开发板上直接用gdb来调试。 前一种方法是比较正统的方法。它gdbserver可以通过arm-linux-gdb直接在host上单步调试target的应用程序。.并且可以与图形界面调试器配合进行图形界面调试。缺点就是target资源较少。因此单步调试的速度并不是太快。因此实用性不算太强。 如何交叉调试 arm-linux的本地版一般只能做字符界面的。界面没有支持GUI的交叉调试版友好。而且单步调试速度也不算快。但是有几大大优点: 1.定位程序退出所在函数. 2.判断程序退出的原因 3.通过条件断点分析异常情况时运行环境. 用本地版gdb运行程序时,当程序因段错误或其它原因退出程序时。可以通过gdb bt(即backtrace)来查看最后运行的堆栈。来判断出错时是在哪一个函数里退出。这样会大大加快定位错误的速度,这样有时需要几天的定位的错误,可能只需要几分钟即可定位,这在嵌入式开发里有很强实际效用。