问题标签 [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 投票
1 回答
57 浏览

go - 使用 net/http 进行 CGO 超时的容器构建(arm):TLS 握手超时

我有一个项目正在使用go modCGO它有一个相对较大的依赖树。

本地构建 ( GOOS=linux, GOARCH=amd64) 工作正常。arm使用我的自定义构建容器(包括几个架构,go get包括

使用相同的构建映像在本地构建arm(我需要使用容器,因为CGO和相应的依赖于架构的 C 工具链)现在给我以下错误(许多示例中的一个):

但是,我可以看到 (with btop) 在此错误之前qemu-arm非常忙 (800 CPU%) 正在运行go相关的构建任务(实际上是一个go mod tidy进程)。

我的猜测是,这是因为没有找到适合arm特定模块的二进制文件,所以它只会即时构建它们。

所以我怀疑从源代码构建的各个模块的时间被算作go get正常的“从 http 获取”,这会导致观察到的超时。

因此,这意味着如果我能够增加 的超时值,我就可以解决问题go get,但我还没有找到任何相关信息。

有任何想法吗?

0 投票
0 回答
34 浏览

macos - 适用于 Linux、Mac 和 Windows 的 crossbuild cmake 教程

CMake 在这里有一个教程:

https://github.com/Kitware/CMake/tree/master/Help/guide/tutorial/Complete

我想使用以下命令为 Linux、Mac 和 Windows 交叉构建它:

https://github.com/multiarch/crossbuild

Crossbuild 提供了一个易于使用的 docker 镜像:

https://hub.docker.com/r/multiarch/crossbuild

我用 Debian Bullseye 代替了 stretch 做了一个分叉:

https://hub.docker.com/r/kmturley/crossbuild

我下载了文件并放在一个/src文件夹中:

https://github.com/kmturley/cmake-multiarch-docker/tree/feature/crossbuild-new

然后我创建了一个 docker-compose 文件,其中包含:

成功运行docker-compose up时会生成 Linux 和 Windows 二进制文件。但是没有生成 Mac 二进制文件:

CMakeOutput.log每个 Docker 映像的文件:

似乎没有显示任何错误,即使使用cmake --debug-output.

为什么没有生成 Mac Tutorial 二进制文件?

0 投票
1 回答
50 浏览

scala - 是否可以使用 SBT 为特定依赖项强制执行不同的 scala 版本

我对斯卡拉很陌生。在将多模块项目升级到 Scala 2.13 时,我发现在 Scala 2.12 中编译的这个依赖项class not found在运行时抛出异常

这个类在 2.13 中被移除。它仅在2.12之前可用。我正在寻找一种强制 v2.12编译此依赖项的方法。

我尝试使用交叉构建,但这不适用于核心库,因为使用以下构造的依赖项 url:

好像

此外,交叉构建似乎是允许使用其兼容的依赖版本编译具有不同 scala 版本的子模块的方式,而不是用于在单个依赖项上强制执行 scala 版本。

编辑 1: 这是构建定义:

该依赖项是一个内部公共库。这在编译时使用类scala/collection/mutable/ArrayOps 。scala-lang -> scala-library

我的问题

  1. 甚至有可能做到这一点吗?或者是我这里提到的降级到 2.12 的唯一选择
  2. 为什么“核心”库不遵循外部库的 url 模式,例如: [organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]. `相反,它看起来像https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.15/scala-library-2.12.15.pom