问题标签 [cross-compiling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3737 浏览

c++ - 链接错误:未定义的符号,很多(cpp 交叉编译)

我得到了最后一个链接命令(实际的可执行文件正在被链接),但我得到了一堆未定义的符号(它们在 cpp 中,对我来说看起来很可怕,一个简单的 c 程序员)

- 它可能很简单,但我无法得到我应该作为链接器放置的内容(它在这里使用 gcc ...?这合适吗?g++ 告诉我太多输入文件哈哈)(ld 返回大部分相同)

无论如何这很荒谬,我完全被困住了

感谢您的帮助!

0 投票
4 回答
5041 浏览

c++ - C++ 应用程序 - 我应该为库使用静态链接还是动态链接?

我将开始一个新的 C++ 项目,该项目将依赖于一系列库,包括 Boost 库、log4cxx 或 google 日志库的一部分——并且随着项目的发展,其他项目也会发展(我还不能预料到) .

它必须在 32 位和 64 位系统上运行,很可能在一个非常多样化的 Linux 环境中,我不希望拥有所有必需的库或 su 权限。

我的问题是,我应该通过动态或静态链接到所有这些库来构建我的应用程序吗?

笔记:

(1) 我知道静态链接在开发过程中可能会很痛苦(更长的编译时间、32 位和 64 位的交叉编译、向下依赖链以包含所有库等),但在测试期间要容易得多 -只需移动文件并运行。

(2) 另一方面,动态链接接缝在开发阶段更容易 - 编译时间短,(真的不知道如何处理从我的 32 位开发环境到 64 位库的动态链接),没有依赖链的喧嚣。另一方面,新版本的部署可能很难看——尤其是在需要新库时(请参阅上面的条件,即在目标机器上没有 su 权限,也没有这些库可用)。

(3) 我已经阅读了有关该主题的相关问题,但无法真正弄清楚哪种方法最适合我的情况。

结论:

  1. 谢谢大家的意见!
  2. 我可能会使用静态链接,因为:
    • 更容易部署
    • 在 perf 期间可预测的性能和更一致的结果。测试(看这篇论文:http://www.inf.usi.ch/faculty/hauswirth/publications/CU-CS-1042-08.pdf)
    • 正如所指出的,静态与动态编译的大小和持续时间似乎并没有那么大的差异
    • 更容易和更快的测试周期
    • 我可以保留所有开发人员。在我的开发中循环。机器
0 投票
3 回答
1579 浏览

linux - 适用于 Linux 的 Xscale 编译器?(也是 Xscale 编译标志问题)

我目前正在使用基于 GCC 3.3.3 的交叉编译器来编译 Xscale PXA270 开发板。但是,我想知道是否还有其他 Xscale 编译器可以在 Linux(或 Windows)上运行?我正在使用的交叉编译器设置在目标设备上具有可怕的性能,在 Xscale 处理器上执行大量数学运算的某些程序比在类似时钟的 Pentium 2 上执行的性能差 10 到 20 倍。编译器的任何其他选项我应该使用基于 GCC 的编译器设置可能有助于提高性能的特定编译器标志?

谢谢,本

0 投票
7 回答
1796 浏览

delphi - Delphi 的下一个版本会支持 Mac 和 Linux 的交叉编译吗?

根据Allen Bauer最近的一篇博客文章

由于我们正在开发 Fulcrum,这是 RAD Studio 的下一个版本,重点是 Mac 和 Linux 的交叉编译,[..]

我想有人会在评论中提到它,但我认为 Mac/Linux 支持还有几个版本。也许只有我一个人,但这是个大新闻。

这是否意味着我们将在今年看到使用 Delphi 版本创建的 Mac/Linux 二进制文件?

0 投票
3 回答
2479 浏览

linux - 当我有一个需要 libX11.so、libGL.so 和 libGLU.so 的应用程序时,如何使用 cygwin 交叉编译到 linux?

我是否必须使用 cygwin 提供的交叉工具来使用它们各自的源代码制作 libX11.so、libGL.so 和 libGLU.so 库?或者你知道我在哪里可以找到已经为 crosstool 编译的它们(我是这个交叉编译的新手)?

只是为了澄清:我在一台 Windows 7 机器上试图让我的应用程序也通过使用 cygwin 的交叉编译来为 linux 系统编译。该应用程序使用 OpenGL。谢谢

0 投票
1 回答
1029 浏览

linux - 加拿大 Cross binutils To ARM

我在使用ARM 处理器的 HP Jornada 720 上使用JLime 。我已经有一个用于 x86的交叉编译gcc ( arm-linux-gcc )。我想做什么的想法很难理解,那么看看这个图表:

arm-linux-gcc(在我的 Ubuntu 笔记本电脑上)-> binutils 在 ARM 处理器上运行(目标是在我的 ARM 设备上编译 mips-elf)

我想制作一个binutils以在 ARM Linux 设备上运行,它将程序编译为 MIPS Linux。

我的问题是:

  • 我怎么需要./configure这个?
  • 我需要使用额外的参数来制作或更改 MakeFile 上的任何内容吗?
  • 你明白我想做什么吗?;-)
0 投票
5 回答
2722 浏览

arm - 关于为 Xscale ARM 构建交叉编译器的建议?

我正在使用 PXA270 Xscale 开发板(类似于 Gumstix),并提供了一个交叉编译器,但它是 GCC 3.3.3。我想学习如何构建自己的交叉编译器,这样我就可以自定义设置,但是在获取 crosstools 和 crosstools-ng 以成功构建工具链时遇到了麻烦。我的主要需求是使用 GCC 4.2.X 和使用软浮点的能力。我正在运行 Ubuntu 9。有人对为这样的系统构建工具链有任何建议或建议吗?

提前致谢,

0 投票
4 回答
1335 浏览

iphone - 将 c 翻译成目标 c

我找到了我想在我的应用程序中使用的 ac 函数。不幸的是,我的c知识不是很好。第一段代码显示了原始 c 代码,第二段是我对目标 c 的“翻译”。我有 3 个问题希望得到帮助:

  1. 我将变量从其 c 对应物转换为目标 c 对应物是否有效?(我没有编译器警告)
  2. 最后使用 free () 是否可以接受,还是应该在目标 c 中以另一种方式完成

c代码:

目标c代码:

0 投票
1 回答
3975 浏览

boost - 交叉编译提升的问题

我正在尝试在我们的系统中设置 Boost 1.42。我需要 Boost 来为使用 gcc 的常规 x86 架构进行编译,我需要为德州仪器的 ARM 处理器进行交叉编译。

ARM 处理器的工具链基于 gcc。gcc、ar、ranlib 等工具都以 arm_v5t_le- 为前缀。关于交叉编译的文档有些有限。以下是我所做的: 我在 user-config.jam 文件中添加了以下内容:using gcc : arm : arm_v5t_le-g++ ;从我们的 Makefile 调用 Bjam,如下所示:bjam toolset=gcc-arm --toolset-root=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin <some other options>为 ARM 处理器编译,bjam toolset=gcc <some other options>为 x86 处理器编译。这里提到了 --toolset-root 选项。

我遇到了以下问题:当我为 ARM 处理器构建应用程序时,出现以下链接器错误:libboost_system-mt.a: could not read symbols: Archive has no index; 运行ranlib 添加一个。在我在存档上运行 arm_v5t_le-ranlib 后,它的链接没有问题。我的猜测是 bjam 使用 ar 而不是 arm-v5t_le-ar。我如何告诉 bjam 它应该使用哪个归档器?

在一个邮件列表上,据说它<archiver>也在 user-config.jam 中指定,但不幸的是它似乎不起作用。我最终得到相同的链接器错误。

谢谢。

0 投票
4 回答
9711 浏览

linux - 为特定目标平台设置交叉编译环境

我想在 Ubuntu 9.10 机器上设置一个交叉编译环境。从我目前阅读的文档(例如这些文档 来看,这涉及编译目标平台的工具链。

我的问题是:您如何确定特定目标平台的工具链中每个包的所需版本?有什么我可以遵循的经验法则吗?

这是在上面链接的网站之一中找到的列表:

binutils-2.16.1.tar.bz2
linux-2.6.20.1.tar.bz2
glibc-2.5.tar.bz2
glibc-linuxthreads-2.5.tar.bz2
gcc-core-4.2.0.tar.bz2
gcc-g++-4.2 .0.tar.bz2

但假设我想为标准的 Ubuntu 8.04 和 CentOS 5.3 机器生成可执行文件。有哪些必要的包?

我的主要需要是避免在客户的机器中出现“/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found”之类的错误,但将来我也想处理不同的架构。