问题标签 [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.
go - 使用 net/http 进行 CGO 超时的容器构建(arm):TLS 握手超时
我有一个项目正在使用go mod
,CGO
它有一个相对较大的依赖树。
本地构建 ( 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
,但我还没有找到任何相关信息。
有任何想法吗?
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 映像的文件:
- Linux:https ://gist.github.com/kmturley/61745d5cea04142f4eba029f64a388f9
- Mac:https ://gist.github.com/kmturley/2957ef38929b58e42747a1e2e37dffb5
- 赢:https ://gist.github.com/kmturley/5aa1347959dd7e33c69cca73a45ff788
似乎没有显示任何错误,即使使用cmake --debug-output
.
为什么没有生成 Mac Tutorial 二进制文件?
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。
我的问题:
- 甚至有可能做到这一点吗?或者是我这里提到的降级到 2.12 的唯一选择
- 为什么“核心”库不遵循外部库的 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