程序编译
monkey_llll
这个作者很懒,什么都没留下…
展开
-
Ubuntu获取命令源码
获取命令源码原创 2022-08-22 13:48:20 · 240 阅读 · 0 评论 -
Linux 查看动态库里面有哪些接口
今天,提供了一个操作底层的动态库给到应用层的同事,应用层的同事反馈找不到接口。因为这个库在协作开发过程中,有点曲折。所以第一时间搞得我也有点不自信了,就先排查了一下是否是自己的问题。排查方式如下:nm libtest.so通过上述命令查看,发现需要的接口已经在库里面实现了。结果如下图:相关符号说明:A Global absolute 符号。a Local absolute 符号。B Global bss 符号。b Local bss 符号。D .原创 2022-04-26 18:31:15 · 3771 阅读 · 0 评论 -
Linux 程序 动态库 静态库依赖关系
Linux 程序 动态库 静态库依赖关系,在执行程序的时候,已经比较熟悉了,但是在编译过程中,一直还有点疑问。比如:1、app 依赖 动态库A,动态库A依赖静态库B2、app 依赖 动态库A,动态库A依赖动态库B3、app 依赖 静态库A,静态库A依赖动态库B //这种我目前没有成功,感觉实现不了4、app 依赖 静态库A,静态库A依赖静态库B针对情况1:编译的时候,先编译静态库B,编译静态库B的时候,加上 -shared -fPIC参数然后编译动态库A的时候,让动态库A原创 2022-04-12 15:40:58 · 5494 阅读 · 3 评论 -
linux 下编译,区分程序、库是debug还是release版本。同时以编译freetype为例
在linux里面怎么区分debug和realease版本1、使用 readelf -S filename //filename这里指的是你想要查看的程序,或者库 如果是debug版本的话,你会看到很多debug相关的信息。 如果是release版本的话,按理说是看不到debug信息的。//但是我使用交叉编译链编译程序后,会看见 .debug_frame...原创 2019-03-02 14:30:34 · 10290 阅读 · 3 评论 -
自己动手编译交叉编译链
这篇文章主要记录一下自己编译 交叉编译链工具的过程。其实很多工作都是别人已经帮我们做好了的,我只是使用一下别人做好的工具。编译的过程中,主要使用到的工具是:crosstool-ng 编译的流程主要是: 1、先编译安装 crosstool-ng 2、配置 crosstool-ng 3、crosstool-ng 这个工具就把剩下的工具都帮你做了。 //...原创 2019-03-09 21:54:07 · 2068 阅读 · 1 评论 -
原 Qt 交叉编译的路径设置
在交叉编译Qt源码时,需要设置部署路径。但是部署路径有三个变量,分别是-prefix, -extprefix 和-hostprefix。那这三个变量分别是什么意思呢?-prefix:目标板的引用路径。 这个路径有两个作用,一个是指定目标机的Qt库路径,也就是说,当你把Qt库部署到目标机时,需要把Qt库拷贝到这个路径下,Qt程序就可以自动找到库。第二个是,如果你没有指定extprefix, in...转载 2019-05-31 20:51:50 · 1381 阅读 · 0 评论 -
QT 5.9 交叉编译提示 error: insn does not satisfy its constraints 以及交叉编译链各个版本的下载链接
今天在交叉编译QT5.9.8版本的时候,提示widgets/qtextedit.cpp:1080:1: error: insn does not satisfy its constraints:错误。后面觉得这个问题可能是交叉编译工具链版本太低导致。之前使用的是4.9版本的,提示这个错误。后面将交叉编译链更改为5.4.1版本后,就成功通过了编译。下面附上交叉编译链的下载链接:https:/...原创 2019-06-20 21:48:49 · 1408 阅读 · 0 评论 -
ARM 执行应用程序提示 -sh : no such file or direction
遇到这个问题,是因为我自己交叉编译了QT的库,然后再根据这个库,交叉编译了QT的应用程序,将应用程序拷贝到板子上时,提示了这个问题。我使用之前的环境编译的程序就不会出现这个问题。首先根据网友的提示,我确定了我的文件是有可执行权限的,我的可执行文件和我的系统也是匹配的,都是32位的。同时我使用相同的编译器进行编译,其他程序是可以执行的。后面根据以为大佬的提示,使用readelf查看信息,最终...原创 2019-07-24 08:46:07 · 699 阅读 · 0 评论