Linux - 路径的表示

本文深入探讨Linux中路径管理的核心概念,包括绝对路径与相对路径的区别及应用实例,帮助开发者准确理解和运用Linux路径知识。
       一般情况下,在用shell的时候,或者你通过什么方式调用你的应用程序的时候,都要写明被调用的程序路径。路径分为绝对路径和相对路径。

绝对路径
      在Linux中,绝对路径是从 / (也被称为根目录)开始的,比如/usr、/etc/X11。如果一个路径是从/开始的,它一定是绝对路径,这样就好理解了。

  [root@localhost ~]# cd /usr/share/doc/      注:使用绝对路径进入doc目录
      [root@localhost doc]# pwd                        注:判断用户当前所处的位置                    
      /usr/share/doc                                          注:位于/usr/share/doc


相对路径
      在Linux中相对路径的使用相对于绝对路径来说是比较复杂的,在Linux路径中经常会一些特殊符号,这些符号是用来表示相对路径的。

   .   表示用户所处的当前目录
    ..  表示上级目录
 ~  表示当前用户自己的home目录
 ~USER 表示用户名为USER的家目录,这里的USER是在/etc/passwd中存在的用户名

   使用“../”来表示上一级目录,“../../”表示上上级的目录,以此类推。


使用举例
例1: 
  c:/website/web/index.htm
  c:/website/img/photo.jpg
         
    在此例中index.htm中链接photo.jpg
      正确写法:使用“../img/photo.jpg”的相对路径来定位文件 

例2: 
  c:/website/web/xz/index.htm
  c:/website/img/images/photo.jpg
          
   在此例中index.htm中链接photo.jpg
     正确写法:可以使用../../img/images/photo.jpg的相对路径来定位文件

例3:
  c:/website/web/index.htm
  c:/website/web/photo.jpg
          
    在此例index.htm中链接photo.jpg
      正确写法:使用./photo.jpg的相对路径来定位文件 

例4:
     在本地硬盘有如下两文件,它们要互做超链接
     G:\site\index.htm
     G:\site\web\article\01.htm
     
     index.htm链接到01.htm
     正确的链接应该是:<a href=web/article/01.htm>链接文字</a>,
     
     01.htm要想链接到index.htm
     正确的链接应该是:<a  href=../../index.htm>返回首页</a>注:这里的../表示向上一级。

<think>我们已知工具链前缀为 `aarch64-linux-android-`,那么对应的C编译器应该是 `aarch64-linux-android-gcc`。 在Makefile中,CC变量通常用于指定C编译器,因此应设置为工具链路径下的`aarch64-linux-android-gcc`。 例如,如果工具链所在的目录是`/path/to/toolchain/bin`,那么CC应该设置为: CC = /path/to/toolchain/bin/aarch64-linux-android-gcc 注意:有时工具链路径已经添加到系统的PATH环境变量中,那么也可以直接写编译器名称,但是为了保证可靠性,通常建议写绝对路径。 参考引用[3]中提到的,对于ARM64架构,工具链名称就是`aarch64-linux-android-<gcc-version>`,因此编译器名称通常是`aarch64-linux-android-gcc`(可能带有版本号后缀,也可能没有,具体看你的工具链文件命名)。 另外,引用[5]提到,在替换编译系统中的CC变量时,可以直接使用工具链的绝对路径。 因此,在Makefile中设置CC变量时,应该这样写(假设工具链在`/opt/android-ndk/toolchains/bin`目录下): CC = /opt/android-ndk/toolchains/bin/aarch64-linux-android-gcc 如果工具链路径已经加入PATH,也可以写成: CC = aarch64-linux-android-gcc 但为了确保在不同环境中都能正确找到编译器,推荐使用绝对路径。 此外,还需要注意,在编译Android程序时,通常需要指定sysroot(如引用[4]所示)以及目标平台(API级别)等参数。 总结:在Makefile中,CC变量应该设置为`aarch64-linux-android-gcc`的绝对路径(或者如果已在PATH中,则可以直接写命令名称)。 </think>在已有 `aarch64-linux-android-` 系列工具链的情况下,Makefile 中 `CC` 变量对应的工具是 **aarch64-linux-android-gcc**。这是用于编译 ARM64 架构 Android 程序的 C 编译器。 ### 详细说明 1. **工具链命名规则**: - 工具链前缀 `aarch64-linux-android-` 表示目标平台: - `aarch64`:ARM64 架构 - `linux`:Linux 内核兼容 - `android`:Android 操作系统 - 编译器后缀 `gcc` 表示 GNU C 编译器 2. **Makefile 配置示例**: ```makefile # 设置工具链路径据实际路径修改) TOOLCHAIN_PATH = /path/to/your/toolchain/bin # CC 变量指向 C 编译器 CC = $(TOOLCHAIN_PATH)/aarch64-linux-android-gcc # 示例编译规则 %.o: %.c $(CC) -c $< -o $@ -fPIC -DANDROID ``` 3. **关键说明**: - `aarch64-linux-android-gcc` 是交叉编译工具链的核心组件,负责将 C 源码编译为 ARM64 架构的机器码[^1][^3] - 必须与 `--sysroot` 参数配合使用,指定 Android NDK 的系统目录(如 `android-21/arch-arm64`)[^4] - 实际路径可能包含版本号(如 `aarch64-linux-android4.9-gcc`),具体取决于工具链版本[^1] 4. **完整工具链构成**: | 工具 | Makefile 变量 | 功能 | |------|---------------|------| | `aarch64-linux-android-gcc` | `CC` | C 编译器 | | `aarch64-linux-android-g++` | `CXX` | C++ 编译器 | | `aarch64-linux-android-ar` | `AR` | 静态库打包 | | `aarch64-linux-android-ld` | `LD` | 链接器 | | `aarch64-linux-android-strip` | `STRIP` | 二进制精简 | ### 验证方法 执行以下命令验证工具链有效性: ```bash # 检查编译器版本 /path/to/toolchain/bin/aarch64-linux-android-gcc --version # 输出应包含目标平台信息 aarch64-linux-android-gcc (GCC) x.x.x Target: aarch64-linux-android ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值