makefile问题记录

阅读目录

      • 1、makefile 报错:`skipping incompatible`
      • 2、makefile -m32
      • 3、Makefile 中 -wl ,rpath 以及 O0 O1 O2 O3 Os 的用法
      • 3、makefile 选择编译器
      • 4、Makefile中ranlib的作用详解


1、makefile 报错:skipping incompatible

https://blog.csdn.net/wenqiang1208/article/details/75535955

解决方法:objdump -p libmylib.a 看一下该库的版本是32为还是64位的,或是ARM版还是…等等。仔细分析一下。你就会恍然大雾。(我的碰到的问题是:编译器选择的是64版,但是xxx.a是32版,当然不兼容)

原因:makefile编译出来的静态库是编译服务器默认的x86_64位的,并非指定的 mipsel-linux-,说明makefile写的有问题;

2、makefile -m32

https://blog.csdn.net/holandstone/article/details/7956109

3、Makefile 中 -wl ,rpath 以及 O0 O1 O2 O3 Os 的用法

https://blog.csdn.net/sdc20102010/article/details/56833279

再makefile中一般默认的 lib 的加载路径是/lib /usr/lib 如果想要改变程序运行时的libs的加载路径 就需要用到 -wl , rpath 参数来添加lib 加载路径。

O0 O1 表示在不影响编译速率的前提下尽可能的优化程序的大小和运行速率。

O2 表示在牺牲部分编译速率的前提下 支持配置优化参数的优化 尽可能的提高运行速率。

O3 表示 采取多项量算法 提高程序的运行速率(他不惜增大程序的大小)

Os 和O3一样只不过他不会为了以为的提高程序运行速率二曾大程序的大小。

3、makefile 选择编译器

搜索:makefile 选择编译器

https://blog.csdn.net/alss1923/article/details/78964244

4、Makefile中ranlib的作用详解

https://blog.csdn.net/qq_34595352/article/details/88027689

你可能感兴趣的:(编译)