问题标签 [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.
v8 - 如何为 Raspberry Pi 交叉构建最新版本的 V8?
我一直在尝试像这样为 Raspberry Pi 交叉构建 V8:
但是,由于许多不同的原因,它不会编译。我究竟做错了什么?
scala - 如何让 sbt 为不同的库版本编译不同的源代码?
我知道使用 SBT 可以轻松跨不同的 Scala 版本进行交叉构建。您只需将无法编译的文件放入目录而scala-2.10
不是. 但是,如果我想为不同版本的 Scala和不同版本的依赖项(比如 Spark 1.6 和 2.1)交叉构建,那该怎么做呢?scala-2.11
scala
scala - SBT: Cross build project for two Scala versions with different dependencies
I have the following use case. I would like to build the same Scala project for scala 2.10 and 2.12. When doing so I would like to specify some of the dependencies for the 2.10 version as provided whereas I'd like to have those compiled in the jar for 2.12.
I was looking at SBT's docs and found how I can split a build.sbt
into separate declarations but those always get mentioned as sub-modules. In my case I'd like to cross-build the whole app - not specific parts of it.
Any hints or resources will be appreciated.
scala - 哪个maven插件可以解决'[WARNING]'artifactId'包含一个表达式但应该是一个常量'?
从 maven 3 开始,不再建议在 maven pom root artifactId 部分中包含属性变量。
系统将提示用户删除它并显示以下警告:
[警告] 'artifactId' 包含一个表达式,但应该是一个常量。
这会导致交叉构建的 scala 项目出现严重的不兼容问题,该项目应始终在其 artifactId 中包含 _${scala.binary.version}。(发布的工件的确切版本插值可以通过flatten-maven-plugin处理,没什么大不了的)
我尝试了几种可能的替代方法来克服这个问题,包括:
覆盖构建/最终名称
覆盖 build/plugins/plugin/maven-jar-plugin/configuration/finalName
覆盖 build/plugins/plugin/maven-install-plugin/configuration/artifactId。
事实证明,它们都不起作用。处理这种情况的最佳方法是什么?
c - 从 Win32 交叉构建的静态库中导出函数
我尝试使用i686-w64-mingw32
交叉构建工具链构建一个 win32 静态库。
mylib.lib
我通过 Makefile构建了目标文件和文件:
这给了我静态库mylib.lib
。在 linux 端检查这个,nm
我可以看到所有的组成目标文件和它们包含的函数
不,当我mylib.lib
在 Windows 10 VM 上检查时,即
我得到:
没有任何功能被导出。
在相关的头文件中,我标记了要导出的函数__declspec(dllexport)
这在我生成 .dll 时效果很好,即我标记为导出的函数是 .dll 文件中唯一可见的函数
但是对于静态库等价物,什么都没有被导出?
您如何使函数在 win32 .lib 文件中可见?
c - 交叉构建的 COFF 文件和 MSVS 的兼容性
i686-w64-mingw32-gcc
我已经在 linux机器上使用交叉构建了一个 win32 静态库。
我nm
在 linux 端检查了生成的 .lib 文件并查看:
我还在dumpbin /symbols
Windows 端检查了 .lib 文件,并查看:
一位同事正在尝试使用 MSVS2008 使用 lib 构建 exe,并看到如下错误:
nm
和输出看起来是否dumpbin
合理。如果符号在静态库中,为什么会发生链接错误。难道是交叉构建的库在某种程度上与 MSVS 2008 不兼容吗?
docker - crossbuild-essential-armel : 来自 debian:jessie 的 Docker 中未满足的依赖项
我有一个 docker 容器,我用它来交叉编译 Debian-jessie 的应用程序。从最近开始我对它没有任何问题,但现在看来我有无法解决的未满足的依赖关系:
The following packages have unmet dependencies: crossbuild-essential-armel :
Depends: gcc-arm-linux-gnueabi (>= 4.9.1-1) but it is not going to be installed
Depends: g++-arm-linux-gnueabi (>= 4.9.1-1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
我尝试在其他安装(VM)上执行此操作,但结果完全相同。
下面我粘贴出现错误的构建步骤:
我发现了一个类似问题的问题,但这对我没有太大帮助。
所以我的问题是“我如何开始纠正这个问题并让它发挥作用?”
编辑 1
如果它是相关的,那么问题似乎来自 Debian Jessie 发行版,我无法获得 crossbuild-essential-armel。
编辑 2
我尝试为损坏的软件包安装测试和不稳定分支。他们正在安装,但之后,编译仍然无法正常工作。
arm - 如何为 ARM Linux 设备交叉构建 luajit-5.1?(尝试构建 LÖVE 框架)
我正在尝试从 Ubuntu 16.04 为 ARM Linux 设备(Rockchip RK3066)交叉构建 LÖVE(https://love2d.org )。
正如文档所说,我在 Ubuntu 上安装了所有依赖项并且能够构建它(对于 Ubuntu,作为测试)。现在我要进行交叉构建。
在构建之前,我必须运行 ./configure。到目前为止,我已经能够让工具链的 gcc 编译器被接受,但是当它查找依赖项时,我得到了这个错误:
这可以通过为设备交叉构建 luajit 并将其添加到工具链二进制文件来解决,还是我可以尝试让 ./configure 脚本查找我在 Ubuntu 中安装的 luajit?
如果是后者,有人会指出我正确的方向吗?我已经打开了 20 页类似的错误消息,但没有一个有有效的答案。
提前非常感谢。
go - 如何静态链接外部 Go 库
我有一个用 Golang 编写的小应用程序,它使用 Oci8 进行 Oracle 数据库连接。当我尝试在另一台 Macbook(相同的操作系统版本)上运行我的 Macbook 上构建的二进制文件时,它失败并出现以下错误:
我试图用静态库编译为:
它失败并出现以下错误:
/usr/local/go/pkg/tool/linux_amd64/link:运行 gcc 失败:退出状态 1 /usr/bin/ld:找不到 -lclntsh collect2:ld 返回 1 退出状态
然后我尝试按照如何使用 cgo 在 go 中静态链接 ac 库中的说明进行交叉编译?
那是,
但是,它失败并出现以下错误:
简而言之,我尝试了多个论点。但是,它们要么提供动态链接的二进制文件,要么根本无法编译。
我什至没有尝试在多个操作系统之间分发它。我想要做的是为操作系统构建这个包,比如 Mac,这样它就可以在任何 Mac 机器上运行,而无需显式安装库。
scala - 工件 ID 中包含的 Scala 和 Scala.js 版本
我刚刚成功地将我的第一个 Scala 和 Scala.js 交叉构建库发布到 Sonatype,现在可以在我的应用程序中使用以下两个工件:
- https://search.maven.org/artifact/com.github.fbaierl/scala-tarjan_2.12/0.1.1/jar
- https://search.maven.org/artifact/com.github.fbaierl/scala-tarjan_sjs0.6_2.12/0.1.1/jar
我现在的问题是:为什么 Scala 和 Scala.js 版本包含在工件 ID 中?我不认为我以前见过这样的事情,所以我想知道我是否做错了什么。这是我的build.sbt
:https ://github.com/fbaierl/scalajs-cross-compile-tarjan/blob/03954a3e2d1442ad339298a986209c1403c9692e/build.sbt