❶ linux 升级openssl遇到的问题。
你第一张图不是报错了嘛,加上-fPIC参数编译即可。
./config -fPIC
make && make install
❷ 编译移植busybox出错,arm-linux-gcc版本4.3.3 busybox版本1.16.0 错误代码如下:
找不到链接库,不这些都是数学库,加参数 -lm 应该就能解决。
但编译过程这个东西应该是自己加。
busybox 一般都是静态的,编译静态程序,很多时候需要他以来的函数库也是静态的。你这个问题应该是编译环境不匹配。你编译了 uclibc 并且正确安装了没?
不过话说,不过是个编译,人家本来就支持 arm ,“移植”这两个字应该是不需要用了。
❸ 为什么使用gcc hello.c -fpie -pie -shared -o hello 编译出来
pie 选项用于编译可执行程序,而非lib
❹ gcc -shared gcc -static 这两个命令分别起什么作用
其中后面的都是gcc的命令参数,第一个表示的是调用动态库,第二个static表示的是编译的时候禁止调用动态库,此时就是说完全编译出的东西是比较大的,
❺ makefile 生成动态库和静态库的区别
生成动态库的时候要注意,编译生成目标文件的时候加上-fPIC参数,生成位置无关的可重定位代码,然后链接的时候加上-shared生成动态共享库。比如一个hello.c,生成静态库:
gcc-ohello.o-chello.c
arrcslibhello.ahello.o
生成动态库的命令:
gcc-fPIChello.o-chello.c
gcc-shared-olibhelllo.sohello.o
还有一个区别是:静态库参与链接过程,而动态库不链接到可执行文件中,可执行程序在运行的时候,对应的动态库也要加载到内存中,否则可执行程序运行不了。
更多详细细节,可以网络搜索视频教程:Makefile工程实践