标签: cross-compiling

IBM PS/2 Model 30 286 编译器

我正在从事一个项目,该项目需要为 IBM PS/2 Model 30 286 ( http://en.wikipedia.org/wiki/IBM_Personal_System/2#Models )开发软件。我想知道如何为这个系统编译程序。我需要能够渲染图形,但我不确定从哪里开始。以下是我可能会如何做这件事的想法列表。欢迎任何想法和/或建议。

  • 找到可以在这台机器上运行的软件(最好是游戏)的源代码。
  • 反编译现有程序(最好是游戏)并分解其内部工作。
  • 如果我能弄清楚如何编译 C 程序,那么:
    • 查找有关驱动程序的一些文档。
    • 弄清楚是否有可以用来渲染图形的现有库。
  • 如果我能找到一种方法来为这个系统编译程序,而不必在系统上运行编译器,那么:
    • 在我的 PC 上模拟我的程序,然后为 IBM PS/2 编译我的程序。

FWIW,我可以在这个系统上运行 DOS。计算机附带的手册没有关于运行什么程序进行编译的说明。

c reverse-engineering cross-compiling decompiler

0
推荐指数
1
解决办法
516
查看次数

ARM工具链编译库(buildroot)

我正在使用 buildroot 的工具链来交叉编译 ARM 应用程序。然而,某些应用程序需要的库不是为该工具链编译的。我的主机工具链上有这些库,例如 -ljack、lfftw 等。

我需要知道,如果我获得所需软件包的 tarball,那么如何配置它们,以便由 arm-gcc 编译这些库,并将标头/库复制到 buildroot 的 /usr 和 /include ?

这样我应该能够通过 buildroot 的工具链访问这些库。

谢谢,

gcc arm cross-compiling toolchain buildroot

0
推荐指数
1
解决办法
2049
查看次数

为 iOS 交叉编译 libsodium

我想交叉编译 libsodium 加密库以在 iOS 上使用。具体来说,我想为 armv7、armv7s 和 arm64 编译它,以便它适用于较旧和较新的 iPhone。

我按照 libsodium 网站(https://download.libsodium.org/doc/installation/index.html)上的说明交叉编译它并像这样运行配置脚本:

./configure --host=armv7-apple-darwin
Run Code Online (Sandbox Code Playgroud)

和 armv7s-apple-darwin 和 armv8-apple-darwin 相同(我认为/希望与 arm64 相同,因为不支持 arm64)。然后我做了“make install”,它成功了,没有错误。但是,如果我随后检查了创建的静态库:

lipo -info libsodium.a
Run Code Online (Sandbox Code Playgroud)

它告诉我:

Non-fat file: libsodium.a is architecture: x86_64
Run Code Online (Sandbox Code Playgroud)

对于所有这些。为什么这个静态库是针对 x86_64 架构的,而我针对的是 armv7、armv7s、armv8 架构?难道我做错了什么?

compilation cross-compiling armv7 ios libsodium

0
推荐指数
1
解决办法
1236
查看次数

为什么 Go 源代码包含许多 .go 文件?它们是如何编译的?

我想知道编译器是如何工作的!

https://github.com/golang/go 这个源码包含 88% 的.go文件。

所以这应该有另一个编译器来执行.go文件。

示例:https : //github.com/golang/go/blob/964639cc338db650ccadeafb7424bc8ebb2c0f6c/src/go/ast/ast.go

Golang 使用什么编译器生成最终的执行文件?!以及它们的来源?

可能是 Golang 生成 ac 代码,然后使用 GCC 或 ...?

新更新

我不想 go1.4 然后在使用 c。

github.com/golang/go 88% 的来源是.go文件。.goGo Source 的编译文件是什么?我想看看最终的 GO 编译器?

https://github.com/golang/go/search?l=c

我认为这称为cg.


意思是旧版本的 Go 编译器(1.4 版)用于编译新版本的 Go 编译器。???!

go-go1.4.3/src/go/token/token.go 这是去令牌,词法分析器,是在 GO 上写的

FUNC: "func", GO: "go", GOTO: "goto", IF: "if", IMPORT: "import",

那么执行.go文件的主编译器在哪里?

go-go1.4.3/src/runtime/compiler.go

// Copyright 2012 The Go Authors.  All rights reserved.
package runtime
// …
Run Code Online (Sandbox Code Playgroud)

compiler-construction gcc compilation cross-compiling go

0
推荐指数
1
解决办法
472
查看次数

无法使用 hikey_defconfig 编译 u-boot

我刚刚从 github 克隆了 u-boot

https://github.com/u-boot/u-boot.git
Run Code Online (Sandbox Code Playgroud)

并尝试使用随机选择的 defconfig(特别是hikyy_defconfig)来构建它。

export ARCH=arm
export CROSS_COMPILE=/opt/linaro-7.2.1-2017.11/bin/arm-linux-gnueabi-
make hikey_defconfig
make all
Run Code Online (Sandbox Code Playgroud)

一段时间后,这给了我以下错误:

{standard input}: Assembler messages:
{standard input}:36: Error: unexpected character `n' in type specifier
{standard input}:36: Error: bad instruction `b.ne 1b'
scripts/Makefile.build:280: recipe for target 'arch/arm/cpu/armv8/cpu.o' failed
make[1]: *** [arch/arm/cpu/armv8/cpu.o] Error 1
Makefile:1320: recipe for target 'arch/arm/cpu/armv8' failed
make: *** [arch/arm/cpu/armv8] Error 2
Run Code Online (Sandbox Code Playgroud)

看起来像一个汇编错误。我究竟做错了什么?

linux assembly gcc cross-compiling u-boot

0
推荐指数
1
解决办法
1262
查看次数

我无法使用交叉编译器

我想在 Windows 10 for Linux (Ubuntu) 中编译我的 Go 代码。

我使用命令:

SET GOOS=linux
SET GOARCH=amd64
go build .\main.go
Run Code Online (Sandbox Code Playgroud)

但编译器会创建一个 .exe 文件。

如何在Linux下交叉编译这段代码?

cross-compiling go

0
推荐指数
1
解决办法
1088
查看次数

什么是 Haskell 的语法以及哪种类型的解析器可以解析它?

我正在尝试为 JDK 11.x 创建一个解析库,它读取 Haskell 代码作为输入,然后将其转换为 Java 以供 JVM 执行。我称它为 Jaskell,但我需要知道 Haskell 的正式语法结构,以便确定需要什么类型的解析器 Jaskell(即 LL 或 LR 解析器)。

java grammar parsing haskell cross-compiling

0
推荐指数
1
解决办法
660
查看次数

如何从 linux 交叉编译到 darwin 386?

我正在尝试使用以下方法从 linux 编译:

GOOS=darwin GOARCH=386 CGO_ENABLED=0 go build .
Run Code Online (Sandbox Code Playgroud)

但它抛出错误:

cmd/go: unsupported GOOS/GOARCH pair darwin/386
Run Code Online (Sandbox Code Playgroud)

我到处看,但似乎应该支持 darwin/386
(编译 windows/386 和 linux/386 工作正常)
(编译 darwin/amd64 工作正常)

(我什至在 Windows 上试过,但错误是一样的)

我错过了什么?

compilation darwin cross-compiling go i386

0
推荐指数
1
解决办法
398
查看次数

如何在 ARM M1 Apple Silicon Mac 上将 Rust 代码交叉编译为 Intel 程序集?

我一直在比较 C 和 Rust 为 x86 和 ARM 生成的汇编代码。

我有一台 M1 Mac,我找到了如何用 Clang 交叉编译 C,但到目前为止我找不到如何交叉编译 Rust。

如何在 M1 Mac 上从 Rust 生成 x86_64 二进制文件?

macos x86-64 cross-compiling rust

0
推荐指数
1
解决办法
211
查看次数

如何从 Apple Silicon 中的 C 源代码创建 x86_64 汇编文件?

我当前的设置是 m1 MacBook Air。

\n

我正在阅读一本低级编程书籍。\n
\n我希望将我编写的 C 代码编译为 x86_64 程序集。

\n

有了 clang 我可以很容易地做到这一点:

\n
clang -target x86_64 -masm=intel -S add_two_numbers.c\n
Run Code Online (Sandbox Code Playgroud)\n

但当我包含一个库(例如 stdio)时它不起作用。

\n
\xe2\x9d\xaf clang -target x86_64 -masm=intel -S hello.c\nhello.c:1:10: fatal error: 'stdio.h' file not found\n#include <stdio.h>\n         ^~~~~~~~~\n
Run Code Online (Sandbox Code Playgroud)\n

正如 clang 文档所说,我可以手动安装 x86_64 库并执行以下操作:

\n
clang -target x86_64 -masm=intel -I path/to/Include -L path/to/Library -S hello.c\n
Run Code Online (Sandbox Code Playgroud)\n

但我找不到可在 MacOS 上下载的预构建包。我试过交叉编译,太费力了。

\n

所以我放弃了,转而追求更简单的东西。我找到了这个问题的解决方案,我将在下面作为答案分享。

\n

macos assembly x86-64 cross-compiling apple-silicon

0
推荐指数
1
解决办法
1075
查看次数

编译 Nim 生成的 C 代码

我听说如果运行 Nim 来生成 C 代码:
nim c -d: release try1.nim
那么进一步生成的 C 代码可以放入任何操作系统上的任何编译器中。

在nimcache文件夹中,生成以下内容:
@ mtry1.nim.c
stdlib_io.nim.c
stdlib_system.nim.c
try1.json

接下来要做什么来编译呢?

c cross-compiling nim-lang

-3
推荐指数
1
解决办法
1084
查看次数