前言全局说明
交叉编译工具链toolchain bin文件作用 gcc g++ ld ar as nm strip objdump
一、说明
二、bin 文件功能
| arm-xxxx-linux-gcc |
| arm-xxxx-linux-g++ |
| arm-xxxx-linux-cpp |
| arm-xxxx-linux-gcov |
| arm-xxxx-linux-addr2line |
| arm-xxxx-linux-ar |
| arm-xxxx-linux-as |
| |
| arm-xxxx-linux-asv |
| arm-xxxx-linux-c++filt |
| arm-xxxx-linux-gprof |
| arm-xxxx-linux-gfortran |
| arm-xxxx-linux-ld |
| arm-xxxx-linux-nm |
| arm-xxxx-linux-objcopy |
| arm-xxxx-linux-objdump |
| arm-xxxx-linux-ranlib |
| arm-xxxx-linux-readelf |
| arm-xxxx-linux-size |
| arm-xxxx-linux-strings |
| arm-xxxx-linux-strip |
三、环境变量
3.1 include .h头文件指定
| export CINCS="${CINCS} /toolchain/include" |
| export CCINCS="${CCINCS} /toolchain/include" |
| export CXXINCS="${CCINCS}" |
| export CPPINCS="${CCINCS}" |
| |
| export C_INCLUDE_PATH=$C_INCLUDE_PATH:<头文件路径> |
| export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:<头文件路径> |
3.2 lib库 so 路径指定
| export CCLIBS="${CCLIBS} /toolchain/lib" |
| export CXXLIBS="${CCLIBS}" |
| export CPPLIBS="${CCLIBS}" |
3.3 LDFLAGS 链接文件 so 路径指定
| export LDFLAGS="-L/toolchain/lib -L/toolchain/lib2 -Wl,-rpath-link-Wl=/work/crossbuild/X/lib" |
注意:多个路径用空格分割,不要用冒号
3.4 LD_LIBRARY_PATH 指定程序编译期间动态库搜索路径
| export LD_LIBRARY_PATH="/toolchain/lib:${LD_LIBRARY_PATH}" |
当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔。
不过LD_LIBRARY_PATH的设定作用是全局的,过多的使用可能会影响到其他应用程序的运行,所以多用在调试。
3.5 -rpath 程序运行时查找so文件路径
| export CXX="${CXX} -Wl,-rpath=/toolchain/lib" |
3.6 --rpath-link 搜索依赖库
| export CXX="${CXX} -Wl,-rpath-link=/toolchain/lib" |
3.7 -I 指定头文件路径
| include_file_PATH="/toolchain/include" |
| export CC="${CC} -I${include_file_PATH}" |
3.8 -L 查找指定目录里so文件
3.9 -march 指定CPU平台
| target_host="arm-openwrt-linux" |
| export CC="${target_host}-gcc -march=armv7-a -marm -mfpu=neon -mfloat-abi=hard -DQL=1 " |
3.10 LD_LIBRARY_PATH 和 LIBRARY_PATH
| 即LD_LIBRARY和LIBRARY的去区别。 |
| LD_LIBRARY_PATH是运行加载, |
| LIBRARY_PATH是编译加载. |
| bin运行我们设置环境变量应该设置的为LD_LIBRARY。 |
3.2
四、其他
4.1
| -L |
| -l |
| -rpath-link |
| -rpath 比 -rpath-link |
| -I |
4.2
文件名:
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
https://blog.csdn.net/cs_sword2000/article/details/99313127
https://blog.csdn.net/hhd1988/article/details/123443735
https://blog.csdn.net/bryanwang_3099/article/details/131234424
https://www.cnblogs.com/circlelll/p/18087254
https://blog.csdn.net/u010429831/article/details/103150893 (3.1)
https://blog.csdn.net/lxp90/article/details/45058415 (3.10)
https://blog.csdn.net/weixin_48859611/article/details/113986310 (3.4 3.10)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2023-07-31 git branch 分支信息显示
2023-07-31 git show 提交详细信息【汇总参数演示】