问题标签 [cross-build]

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 投票
3 回答
3091 浏览

scala - 如何拥有具有多个 Scala 版本的 SBT 子项目?

我有一个使用 Scala 2.10 的项目和一个使用 Scala 2.11 的项目。它们依赖于一个可以同时编译的通用项目。

接着

我怎样才能让baz两个项目都使用?

0 投票
1 回答
2689 浏览

scala - 为什么 crossScalaVersion 不是 scalaVersion?

构建.sbt

项目/build.properties

然后

看起来crossScalaVersions应该是List(2.11.4)

看看 SBT 的源代码,我也是这么想的。

为什么不crossScalaVersions对应scalaVersion

0 投票
2 回答
1494 浏览

scala - SBT Scala 跨版本,具有聚合和依赖关系

我正在为如何crossScalaVersions处理子项目而苦苦挣扎。

我有一个使用 2.10 (foo) 编译的项目和一个使用 2.11 (bar) 编译的项目。他们共享一个交叉编译的项目(常见)。

如何编译项目 foo 和 bar?


构建.sbt

项目/build.properties

foo/src/main/scala/Foo.scala

bar/src/main/scala/Bar.scala

common/src/main/scala/Common.scala


尝试 1

尝试 2

尝试 3

尝试 4

尝试 5

我什至尝试使用相同的基本目录但不同的 scala 版本定义common_2_10和项目。common_2_11我记得读过目标是由 Scala 版本命名的,但 SBT 说存在冲突。


我唯一要做的就是手动指定版本:

但是这是很多命令,永远不能使用并行性,并且避免了(1)项目聚合和(2)交叉构建的整个使用。

我是否遗漏了一些关于 意图的基本内容crossScalaVersions?或者有没有办法让它与 SBT 的其余部分配合得很好,并让我编译我的异构项目?

0 投票
1 回答
245 浏览

apache - arm的apache2交叉构建失败

在交叉构建 apache2 2.4.12 时,我在编译期间收到以下错误:

似乎有一个肮脏的黑客在编译期间从文件 make_exports.awk 生成 httpd-2.4.12/server/exports.c

如何调整这个 make_exports.awk 文件以获得适用于 arm 的交叉构建?

0 投票
1 回答
301 浏览

c++ - Metabuild 工具可同时处理多个交叉构建

我有一个中型 C++ 项目,可以在 32 位和 64 位的 Linux、Windows 和 Mac OS X 上运行。在某些平台上,它有多个变体(例如 Linux 上的 Gtk-2 和 Gtk-3 变体)。作为一个业余程序员,我没有为每个平台专门构建机器的资源。所以我为每一个都安装了交叉编译器,这样所有的构建都在我的 Linux 机器上进行。

我希望能够用一个命令构建所有十个左右的变体。现在我通过一个快速而肮脏的 Python 脚本来实现这一点,该脚本创建了一个 makefile(实际上我最近切换到了 ninja,但我猜它不是很相关)。它为每个变体创建 Windows 安装程序、Debian 包和诸如此类的东西。但我想要一个更干净的解决方案,因为我的脚本不会随着项目的增长而很好地扩展。

所以我的问题是:哪些元构建工具能够创建一个可以处理多个工具包(交叉编译器)和自定义命令(创建安装程序等)的 Makefile(或类似的,如忍者构建文件)?

我尝试了 CMake(和其他一些),但对我来说如何使用多个工具包并不明显。大多数工具似乎为每个配置创建一个 Makefile。

编辑:现在,这个答案声称这是不可能的。我不明白为什么。如果我能用我 15 分钟的 Python 脚本来完成它,我觉得一定有一个工具能够为我完成它。

0 投票
0 回答
736 浏览

arm - 在 Linux64 上为 Windows64 构建 Qemu(ARM 仿真)

我正在尝试在 QEmu 中运行 ARM VExpress 仿真。我的终端平台是 Windows64。我的构建系统正在运行 Linux64。我正在使用 QEmu 2.3.0 版和 x86_64-w64-mingw32 工具链。

在构建过程中我遇到了很多问题,但我自己解决了一些问题。其中之一是安装时的工具链不包含 glib 库,我必须导入从互联网上搜索得到的一个。所以在添加了一些 pkg-config 文件并将这组 glib 复制到 lib 文件夹之后,我得到了整个东西开始编译。

我现在如何面临一个新问题。它正在检查 librt,而工具链没有 librt。我得到了一个 librt 版本并将其添加到工具链 lib 文件夹中,编译时抛出以下错误。任何步骤的任何帮助表示赞赏。

编辑 1:通过在 LIBS 和 LIBS_QGA 头的 config-host.mak 文件中添加 -lole32 来修复上述问题。

但现在面临以下问题

从此着手。

我从 gettext 包下载并编译了 libintl 并手动将其安装在工具链中。对 libiconv 和 libffi 做了同样的事情。

现在,我收到以下错误。

尝试编译 glib 库以尝试解决此问题。感谢您的任何帮助。

0 投票
0 回答
264 浏览

macos - OCaml 默认包含目录和默认 ocamlrun 位置

我已经在我的 mac(主机)上从源代码编译了 OCaml,我没有问题。我还在我的mac上为某些目标(不同于主机)交叉编译了OCaml,在这种情况下我有以下问题:

1)我可以直接使用(在目标上)ocamlrunocamlyacc因为它们是“纯”二进制文件,没有问题,就像在主机上一样。如果我想使用$INSTALL/bin(是目标上$INSTALL的安装目录)中的其他二进制文件,我有错误告诉我路径错误。实际上,如果我使用十六进制编辑器打开二进制文件,我会看到它以路径开头,其中路径是我在其上进行交叉构建的主机(我的 mac)上的路径,而不是其目标版本的路径。 ..当然,如果我用目标上的路径替换这条路径,则无需再做,一切都很好。对于来自和的所有其他二进制文件相同ocamlocamloptocamlrunocamlopt#!/not/target/but/host/path/to/ocamlrunocamlrunconfigureocamlrun ocamlopt$INSTALL/binocamlrunocamlyacc放在一边。(最后两个确实可以直接工作,正如我上面写的那样。)有没有办法configure(在主机上)ocaml交叉构建,以便ocamlrun目标上的正确路径直接出现在二进制文件的开头$INSTALL/bin

2)如果不需要通过标志指定$INSTALL/lib/ocaml目录,我就无法编译代码。-I有没有办法强制这个标准库路径在configure?或者任何ocaml处理它的“内部”环境变量,我可以编辑以确保ocaml会在其中查找库$INSTALL/lib/ocaml?(我对环境变量解决方案非常悲观,因为在主机上我只有两个环境变量(at printenv),ocaml而且似乎没有人处理这种东西,所以我不明白为什么它会变得不同/更好在目标上……)

0 投票
1 回答
595 浏览

ios - 为 armv7-apple-darwin 构建 ncurses

我从gnu 的 ftp获得了 ncurses-5.9 ,提取并更改了 dir 到 ncurse 目录并执行此操作:

配置进行得很顺利,但make -j 4触发了这个:

我挖了一下,发现了这个:https ://gist.github.com/akisute/7227384这让我编辑了configure脚本并评论了以下几行:

然后我configure又做了一次make -j 4,触发了同样的错误:

我怎么能防止这种情况?

0 投票
2 回答
147 浏览

c - 如何让链接器报告给定函数的链接位置

我在尝试在 Linux 主机上交叉构建 win32 和 win64 exe 时遇到问题。

我正在使用 mingw 交叉构建工具链

我的.c文件包括time.h为了clock_gettime()使用main()

现在这是一POSIX件事,所以不能保证它是 Windows 便携的

但是,在另一台具有类似(但显然不相同)设置的笔记本电脑上,它确实可以编译和链接没有问题

在这台笔记本电脑(我要迁移到的新笔记本电脑)上,出现链接器错误:

我想做的是以某种方式让另一台机器上的链接器告诉我它在哪里找到带有clock_gettime()的.dll

为了让我查看新笔记本电脑上是否存在类似的 .dll 以及其中是否有 clock_gettime() 符号

是否有可能让链接器报告此信息,也许是某种详细模式。我已经走上了 GIYF 的路线,但到目前为止还是一片空白。

0 投票
1 回答
1272 浏览

libz - arm-linux-ar: 非法选项 -- z

当我想交叉构建libz时,出现错误,我用谷歌搜索,但找不到答案。请帮助我。我也找到了一个网站,但我不能很好地理解这一点。 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=444727

编码: