问题标签 [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.
c - 嵌入共享库的绝对路径
使用供应商提供的交叉编译工具链(显然是 OpenEmbedded 衍生工具),我无法嵌入第三方(开源,内部编译)库的绝对路径。使用以下 gcc 命令行:
objdump 说:
请注意我的供应商的库确实有完整的路径,而 aspl 没有。另外,请注意嵌入的名称与我在命令行中指定的名称有何不同。我想知道为什么(谁在弄乱我的路径),以及如何解决它。
ps:我知道RPATH,这不是我要找的答案
windows - 使用 OpenSSL for Windows 进行交叉编译
我正在尝试从 Ubuntu 为 Windows 编译 oauth-utils http://mir.dnsalias.com/oss/oauth/start 。我之前(几个月前)在 Windows 上编译过它,但想尝试交叉编译。
我使用mingw32 ok 构建了openssl,并将libssl.a 和libcrypto.a 放在正确的位置。链接器现在正在查找库(耶!)但我收到以下错误:
有什么想法可能导致这种情况吗?
谢谢。
environment-variables - Scratchbox 中的 Scons:找不到 g++
我一直在使用 sbox 和基于 Make 的代码库,没有任何问题。现在我正在使用基于 scons 的代码库,并且遇到了一些奇怪的问题。
似乎在scratchbox中,scons找不到g++。例如,它尝试执行以下操作:
o 你好你好.c
什么时候应该这样做:
g++ -o 你好你好.c
所以大概它的 g++ 字符串变量是空的。g++ 存在并且在 PATH 中 - “which g++”产生 /scratchbox/compilers/bin/g++。
相同的源代码在 Scratchbox 之外构建得很好,所以它不应该是 scons 或代码库的问题。当它工作时,在 scratchbox 之外没有设置特殊的环境变量。
如果我将 /usr/bin/g++ 符号链接到 /scratchbox/compilers/bin/g++,它会更进一步(产生看起来正确的 g++ 命令),但是在执行它们时会产生:
sb_gcc_wrapper (g++): /scratchbox/compilers/arm-linux-cs2007q3-51sb3/bin/sbox-arm-none-linux-gnueabi-g++: 没有这样的文件或目录
列出的文件存在。
PATH 包含 /scratchbox/compilers/bin,SBOX_REDIRECT_FROM_DIRS 包含 /usr/bin,SBOX_REDIRECT_TO_DIRS 包含 /scratchbox/compilers/bin,所以我认为它应该能够找到它。
任何建议,将不胜感激!谢谢,雷
编辑:也许相关-除非我在 scons 文件中添加完整路径,否则它也找不到 pkg-config
linux - 构建 ARM GNU 交叉编译器
一个类似的(描述较少的)帖子在这里。
我正在尝试使用 Ubuntu 上的最新版本推出我自己的工具链,并希望这里有足够的 Linux 社区,以便我可以在某些问题出现时获得具体的建议。
在大家的帮助下,我希望看到这最终变成有用的参考。
首先,几乎每个人都提到的“ Crosstool ”有点过时(2006 年),而现在似乎正在携带火炬的“ Crosstool-NG ”在我的机器上失败了。我宁愿调试进程本身而不是脚本(这似乎需要我理解进程)。
以下是我到目前为止工作的基本步骤;目前我一直在尝试编译第一遍 GCC。
它失败的地方......
它失败了,因为缺少包含“crti.o”的交叉编译库:
构建步骤
在“全新”配置的 Ubuntu 9.04 安装中,以下是我迄今为止完成的步骤:
macos - 如何为错误的系统编译目标代码和交叉编译问题?
参考这个关于编译的问题。我不明白我的 Mac 程序如何使用正确的 -arch,使用那些 -arch 标志进行编译, -arch 标志适用于我所在的系统(ppc64 g5),但仍然产生错误的目标代码。
另外,如果我使用交叉编译器并且在 Linux 上为 mac 生成 10.5 代码,这与我上面描述的有什么不同?
背景是我试图编译各种apache模块。它们使用 -arch ppc、ppc64 等进行编译。我没有收到任何错误,我得到了我的 mod_whatever.so。但是,apache 总是会抱怨找不到某些符号。显然,它与编译器生成的内容有关,即使文件类型表明它适用于 ppc、ppc64、i386、x_64(通用二进制)并且似乎与我拥有的所有其他 .so 模块匹配。
我想我不明白它如何能够毫无问题地为我的系统编译,然后说我的系统无法使用它。也许我不明白编译器实际上给了我什么。
编辑:所有错误消息和完整的过程都可以在这里看到。
谢谢你。
c++ - 为什么在两台略有不同的机器上编译的库的行为略有不同?
这是设置:
我的同事有一台带有 gcc 4.3.3 交叉编译器(来自 buildroot)的 Fedora x64_86 机器。我有一台具有相同交叉编译器的 Ubuntu 9.04 x64_86 机器。
我的同事构建了一个可在测试机器上运行的库 + 测试应用程序,我编译了相同的库和 testapp,但它在同一台测试机器上崩溃了。
据我所知,gcc 是针对 buildroot 编译的 ucLibc 构建的,因此,相同的代码,相同的编译器。什么样的主机差异会影响交叉编译?
任何见解表示赞赏。
更新:为了澄清,编译器是相同的。库和 testapp 的源代码是相同的。唯一的区别是testapp + lib已经在不同的机器上编译过..
c++ - 在 Visual Studio 中使用在 Linux/MinGW 中编译的 libs/dlls
更新:编译时收到此警告:找到具有不同属性的多个“.text”部分
你好,
我使用 MinGW Cross Compiler 在 Linux 中编译了一些库(.a 和 .dll)。我可以在 Visual Studio 2008 中成功链接它们 (.a)。但是,当它运行时(使用 .dll),它以指向空内存地址的地址指针终止。
有没有办法/清单可以让我在 VC08 中成功使用这些库?
交叉编译器生成
- *.dll.a
- *.dll
谢谢
iphone - 为 iPhone 编译 OpenSSH?
我正在尝试(交叉)编译iPhone 的混淆 openssh ,但遇到了一些问题。我正在使用它来配置构建:
但是,这不起作用,抱怨无法找到许多头文件,包括netinet/in_systm.h
和openssl/bn.h
. 有人对如何完成构建有任何想法吗?
pthreads - Pthread 库导致程序在退出时出现 Seg Fault
我在 Alpha 中交叉编译 PARSEC 基准测试,当程序退出时,一些基准测试会出现错误。当我继续运行非 pthreads 版本并且没有段错误时,我已将问题缩小到 Pthreads 库。尽管存在 seg 错误,但程序得到了正确的结果,但这个问题是不可接受的。
一些信息:我在 M5 模拟器中运行这些基准测试,所以我无法动态链接库,所有内容都与 -static 静态链接。
关于如何解决这个问题的任何想法?不确定是否需要在我的 Alpha Cross Compiler 上重建 pthreads 库或添加其他标志。
cross-compiling - 在 Eclipse 中为 PPC 405 目标在 Windows 上进行交叉编译
有没有人知道如何使用 MinGW 或 Cygwin 设置 Eclipse 来构建、开发和交叉编译要部署在具有 PPC 405 架构的机器上的代码?是像为编译器设置正确的标志一样简单,还是有更多的参与?我正在为在 PPC 处理器上运行 Linux 的嵌入式系统在 Windows 上进行开发。任何正确方向的帮助或指示将不胜感激。