Libcurl交叉编译
2024-10-19 08:48:51
配置configure
./configure --build=arm --host=mipsel-openwrt-linux --prefix=/usr/local/curl
执行make
make
取得su权限
su
开始安装
make install
踩坑总结
如果执行sudo make install,会出现以下错误
[ihid@VM_11_5_centos curl-7.61.0]$ sudo make install
[sudo] password for ihid:
Making install in lib
make[1]: Entering directory `/home/ihid/curl-7.61.0/lib'
make[2]: Entering directory `/home/ihid/curl-7.61.0/lib'
/usr/bin/mkdir -p '/usr/local/curl/lib'
/bin/sh ../libtool --mode=install /usr/bin/install -c libcurl.la '/usr/local/curl/lib'
libtool: install: /usr/bin/install -c .libs/libcurl.so.4.5.0 /usr/local/curl/lib/libcurl.so.4.5.0
libtool: install: (cd /usr/local/curl/lib && { ln -s -f libcurl.so.4.5.0 libcurl.so.4 || { rm -f libcurl.so.4 && ln -s libcurl.so.4.5.0 libcurl.so.4; }; })
libtool: install: (cd /usr/local/curl/lib && { ln -s -f libcurl.so.4.5.0 libcurl.so || { rm -f libcurl.so && ln -s libcurl.so.4.5.0 libcurl.so; }; })
libtool: install: /usr/bin/install -c .libs/libcurl.lai /usr/local/curl/lib/libcurl.la
libtool: install: /usr/bin/install -c .libs/libcurl.a /usr/local/curl/lib/libcurl.a
libtool: install: chmod 644 /usr/local/curl/lib/libcurl.a
libtool: install: mipsel-openwrt-linux-ranlib /usr/local/curl/lib/libcurl.a
../libtool: line 1818: mipsel-openwrt-linux-ranlib: command not found
make[2]: *** [install-libLTLIBRARIES] Error 127
make[2]: Leaving directory `/home/ihid/curl-7.61.0/lib'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/ihid/curl-7.61.0/lib'
make: *** [install-recursive] Error 1
在终端检查,发现arm-linux-ranlib可以在系统的PATH中找到,因为已经把交叉编译链添加到了PATH中。
那为什么还提示说找不到arm-linux-ranlib呢?
原因如下:
- 添加交叉编译器目录到PATH中是放在~/.bash_profile里的,这是用户的配置文件
- 执行make install时,加了sudo前缀,变成了root的工作环境和root的权限。
根据以上两点,make install是在root下做的,而arm-linux-ranlib在用户的工作环境中才能找到。所以产生了这里的错误。
那我既要取得root权限,又要具有当前用户的工作环境,该怎么办呢?
解决如下:
- 方法一:执行make install之前,先用下su命令取得root权限。然后再执行make install。
- 方法二:修改交叉编译链环境变量为全局
su 和 sudo 的区别:
- 共同点:都是root用户的权限;
- 不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境;sudo是完全取得root的权限和root的工作环境。
最新文章
- Using Dagger2 in Android
- Linux-学习前言
- 关于onethink的迁移站点产生数据库错误
- 记录自己在使用Bootstrap中的心得
- MACD、BOLL、KDJ 三大组合精准把握趋势与买卖!
- 黄聪:手机移动端建站Jquery+CSS3+HTML5触屏滑动特效插件、实现触屏焦点图、图片轮展图
- 基于OpenDaylight和Mininet的试验床平台搭建
- jsViews validates(验证)
- Seven Steps to Success Machine Learning in Practice
- AMH4.2 Ftp账号路径修改设置
- POJ2528线段树基础
- spring与hibernate整合配置基于Annotation注解方式管理实务
- FineUI框架 使用asp.net控件及其使用问题
- idea配github
- js调试console.log使用总结图解
- 【iCore1S 双核心板_FPGA】例程十七:基于双口RAM的ARM+FPGA数据存取实验
- LintCode: Delete Node in the Middle of Singly Linked List
- WebService,ASMX文件使用XML格式数据传递参数、验证与获取XML格式返回值的一种方式
- Linux命令学习-图形化界面命令开关闭
- HTML 如何显示英文单、双引号