-sysroot 在编译时的作用

2023-11-28 06:08
文章标签 作用 编译 sysroot

本文主要是介绍-sysroot 在编译时的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果在编译时指定了-sysroot就是为编译时指定了逻辑目录。编译过程中需要引用的库,头文件,如果要到/usr/include目录下去找的情况下,则会在前面加上逻辑目录。

如此处我们指定 -sysroot=/home/shell.albert/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root

则如果在编译过程中需要找stdio.h,则会用/usr/include/目录下去找,因为我们指定了系统目录,则会到下面的路径去找。

shell.albert@yantai:~/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include> pwd
/home/shell.albert/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include
shell.albert@yantai:~/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include> ls -l stdio.h
-r--r--r-- 1 shell.albert users 31052 Jul 24  2010 stdio.h
shell.albert@yantai:~/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include>

当然,如果我们同时指定了--prefix=/home/shell.albert/libqt5.3.2希望生成的库和头文件等都安装到此目录下,执行make install开始复制操作。

但是当我们去系统的/home/shell.albert/libqt5.3.2中去寻找编译成果时却没有这些文件,

而直接的成果输出在了,输出路径是相对于-sysroot的。

shell.albert@yantai:~/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/home/shell.albert/libqt5.3.2> pwd
/home/shell.albert/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/home/shell.albert/libqt5.3.2
shell.albert@yantai:~/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/home/shell.albert/libqt5.3.2> ls
bin  doc  imports  include  lib  phrasebooks  plugins  qml  translations
shell.albert@yantai:~/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/home/shell.albert/libqt5.3.2> ls lib
cmake                              libQt5Designer.so.5.3.2           libQt5Positioning.so.5       libQt5Sql.so.5.3
fonts                              libQt5Gui.la                      libQt5Positioning.so.5.3     libQt5Sql.so.5.3.2
libQt5Bluetooth.la                 libQt5Gui.prl                     libQt5Positioning.so.5.3.2   libQt5Svg.la
libQt5Bluetooth.prl                libQt5Gui.so                      libQt5PrintSupport.la        libQt5Svg.prl
libQt5Bluetooth.so                 libQt5Gui.so.5                    libQt5PrintSupport.prl       libQt5Svg.so
libQt5Bluetooth.so.5               libQt5Gui.so.5.3                  libQt5PrintSupport.so        libQt5Svg.so.5
libQt5Bluetooth.so.5.3             libQt5Gui.so.5.3.2                libQt5PrintSupport.so.5      libQt5Svg.so.5.3
libQt5Bluetooth.so.5.3.2           libQt5Help.la                     libQt5PrintSupport.so.5.3    libQt5Svg.so.5.3.2
libQt5CLucene.la                   libQt5Help.prl                    libQt5PrintSupport.so.5.3.2  libQt5Test.la
libQt5CLucene.prl                  libQt5Help.so                     libQt5Qml.la                 libQt5Test.prl
libQt5CLucene.so                   libQt5Help.so.5                   libQt5Qml.prl                libQt5Test.so
libQt5CLucene.so.5                 libQt5Help.so.5.3                 libQt5Qml.so                 libQt5Test.so.5
libQt5CLucene.so.5.3               libQt5Help.so.5.3.2               libQt5Qml.so.5               libQt5Test.so.5.3
libQt5CLucene.so.5.3.2             libQt5Multimedia.la               libQt5Qml.so.5.3             libQt5Test.so.5.3.2
libQt5Concurrent.la                libQt5Multimedia.prl              libQt5Qml.so.5.3.2           libQt5UiTools.a
libQt5Concurrent.prl               libQt5Multimedia.so               libQt5Script.la              libQt5UiTools.la
libQt5Concurrent.so                libQt5Multimedia.so.5             libQt5Script.prl             libQt5UiTools.prl
libQt5Concurrent.so.5              libQt5Multimedia.so.5.3           libQt5Script.so              libQt5WebSockets.la
libQt5Concurrent.so.5.3            libQt5Multimedia.so.5.3.2         libQt5Script.so.5            libQt5WebSockets.prl
libQt5Concurrent.so.5.3.2          libQt5MultimediaWidgets.la        libQt5Script.so.5.3          libQt5WebSockets.so
libQt5Core.la                      libQt5MultimediaWidgets.prl       libQt5Script.so.5.3.2        libQt5WebSockets.so.5
libQt5Core.prl                     libQt5MultimediaWidgets.so        libQt5ScriptTools.la         libQt5WebSockets.so.5.3
libQt5Core.so                      libQt5MultimediaWidgets.so.5      libQt5ScriptTools.prl        libQt5WebSockets.so.5.3.2
libQt5Core.so.5                    libQt5MultimediaWidgets.so.5.3    libQt5ScriptTools.so         libQt5Widgets.la
libQt5Core.so.5.3                  libQt5MultimediaWidgets.so.5.3.2  libQt5ScriptTools.so.5       libQt5Widgets.prl
libQt5Core.so.5.3.2                libQt5Network.la                  libQt5ScriptTools.so.5.3     libQt5Widgets.so
libQt5Declarative.la               libQt5Network.prl                 libQt5ScriptTools.so.5.3.2   libQt5Widgets.so.5
libQt5Declarative.prl              libQt5Network.so                  libQt5Sensors.la             libQt5Widgets.so.5.3
libQt5Declarative.so               libQt5Network.so.5                libQt5Sensors.prl            libQt5Widgets.so.5.3.2
libQt5Declarative.so.5             libQt5Network.so.5.3              libQt5Sensors.so             libQt5Xml.la
libQt5Declarative.so.5.3           libQt5Network.so.5.3.2            libQt5Sensors.so.5           libQt5XmlPatterns.la
libQt5Declarative.so.5.3.2         libQt5Nfc.la                      libQt5Sensors.so.5.3         libQt5XmlPatterns.prl
libQt5DesignerComponents.la        libQt5Nfc.prl                     libQt5Sensors.so.5.3.2       libQt5XmlPatterns.so
libQt5DesignerComponents.prl       libQt5Nfc.so                      libQt5SerialPort.la          libQt5XmlPatterns.so.5
libQt5DesignerComponents.so        libQt5Nfc.so.5                    libQt5SerialPort.prl         libQt5XmlPatterns.so.5.3
libQt5DesignerComponents.so.5      libQt5Nfc.so.5.3                  libQt5SerialPort.so          libQt5XmlPatterns.so.5.3.2
libQt5DesignerComponents.so.5.3    libQt5Nfc.so.5.3.2                libQt5SerialPort.so.5        libQt5Xml.prl
libQt5DesignerComponents.so.5.3.2  libQt5PlatformSupport.a           libQt5SerialPort.so.5.3      libQt5Xml.so
libQt5Designer.la                  libQt5PlatformSupport.la          libQt5SerialPort.so.5.3.2    libQt5Xml.so.5
libQt5Designer.prl                 libQt5PlatformSupport.prl         libQt5Sql.la                 libQt5Xml.so.5.3
libQt5Designer.so                  libQt5Positioning.la              libQt5Sql.prl                libQt5Xml.so.5.3.2
libQt5Designer.so.5                libQt5Positioning.prl             libQt5Sql.so                 pkgconfig
libQt5Designer.so.5.3              libQt5Positioning.so              libQt5Sql.so.5
shell.albert@yantai:~/tools/toolschain_arm/4.4.3/arm-none-linux-gnueabi/sys-root/home/shell.albert/libqt5.3.2>


这篇关于-sysroot 在编译时的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429179

相关文章

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

SpringBoot 中 CommandLineRunner的作用示例详解

《SpringBoot中CommandLineRunner的作用示例详解》SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口,实现功能的... 目录1、CommandLineRunnerSpringBoot中CommandLineRunner的作用

$在R语言中的作用示例小结

《$在R语言中的作用示例小结》在R语言中,$是一个非常重要的操作符,主要用于访问对象的成员或组件,它的用途非常广泛,不仅限于数据框(dataframe),还可以用于列表(list)、环境(enviro... 目录1. 访问数据框(data frame)中的列2. 访问列表(list)中的元素3. 访问jav

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四