首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是Qt的sysroot和前缀选项的实际示例?

什么是Qt的sysroot和前缀选项的实际示例?
EN

Stack Overflow用户
提问于 2014-03-20 17:06:03
回答 2查看 12.9K关注 0票数 13

我正在查看Qt提供的configure脚本可以运行的所有选项。(具体而言,qt-everywhere-opensource-src-5.2.0)。

经过大量的搜索后,我发现这些东西最多只能记录在案,所以我希望能得到一些帮助。当我查看prefixsysroot配置选项的描述时:

~/qt-everywhere-opensource-src-5.2.0$ ./配置-help x grep "sysroot“ -extprefix <dir> ..。当使用-sysroot时,将所有东西安装到<dir>中, -sysroot <dir> .将<dir>设置为目标编译器和qmake的sysroot,并设置pkg-config路径。 -不-gcc.当使用-sysroot时,它禁止将--sysroot传递给编译器~/qt-everywhere-opensource-src-5.2.0$ ./配置-help \ grep“前缀”。 -prefix <dir> .这将安装与<dir>相关的所有内容 -extprefix <dir> ..。当使用-sysroot时,将所有东西安装到<dir>中, -hostprefix dir .开发所需的工具和库

所以我以前使用过-prefix,它做的和描述的完全一样。它将所有内容放在提供的<dir>上,然后当我使用<prefix_dir>/bin/qmake构建应用程序并将其安装在目标平台上时,它希望在<prefix_dir>/lib中找到所有共享对象库。

我的印象是,如果我使用-sysroot,它将安装在<sysroot_dir>上的所有东西,然后当我在目标平台上安装应用程序时,它将在/lib中搜索。至少我希望这是真的。

如果我的假设是正确的..。那么-extprefix的意义是什么呢?他们是在说,如果我同时使用-sysroot-extprefix,就能把好的地方重定向到什么地方?

我想使用-no-gcc-sysroot的原因是什么?如果我希望我的Qt库安装在" sysroot“中,为什么我不希望gcc使用/知道相同的sysroot呢?

如果我能得到一些如何正确使用这些选项的实际例子,那么对其中一些选项的解释将是非常棒的,甚至更好。

EN

Stack Overflow用户

发布于 2015-03-29 12:11:02

这些选项是在构建嵌入式平台时使用的。是的,他们是王室的乱局。因此,这里只有一个部分的答案:

-prefix

  • 尝试并证明了用/usr/lib代替/usr/local/lib或类似于整个Qt安装的方法
  • 当Qt是为当前运行的平台构建的(典型的桌面环境)

-sysroot /path

  • 打算为未安装在/
  • 例如-sysroot ~/mysystem,其中~/myssytem包含/lib、/bin等.
  • 将-sysroot传递给其他工具,如gcc和pkg-config,因此它们将在~/mysystem/lib而不是/lib中搜索它们的依赖项。

-extprefix /b

  • 使用-sysroot /a时,不要实际写入/a
  • 将qt写到/b中
  • 这是为了针对只读系统进行交叉编译。

-不-gcc

  • 针对无法在-sysroot中找到自己的crt的编译器进行了非常具体的攻击。
  • 将sysroot传递给pkgconfig等,但不传递给gcc。
  • 因此gcc将被调用为-L/sysroot/lib/正确,但不会试图在这里找到隐式路径(crt)。

-hostprefix /path

  • 为当前运行的不同目标进行编译时
  • qmake将是主机体系结构(例如x86),qt本身将是目标体系结构(比如arm)。
  • 因此,将qmake放在/path中,而不是-sysroot指定的目标系统中。它对目标系统没有任何用处

为了增加混乱:

-R /path

  • 设置链接器运行路径--例如,QtGui在其中查找QtCore --与所有其他选项无关

在为目标(而不是您的主机)编译时,要使用哪些标志,取决于配置中大量硬编码的假设。

通常,-sysroot + -prefix应该适用于大多数用例。

即当你有:

代码语言:javascript
运行
复制
 $ ls ~/mytarget
 lib bin share dev

您可以使用-sysroot ~/mytarget -prefix /

票数 13
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22540239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档