bochs-2.2.6:错误:C编译器无法创建可执行文件

问题描述 投票:0回答:1

当我尝试在我的macOS High Sierra上配置bochs-2.2.6时发生错误。这是config.log中的错误部分:

configure:2132: checking for C compiler default output file name
configure:2135: gcc -pipe -O3 -I/sw/include -fomit-frame-pointer -finline-      functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays  -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants -Wno-unknown-pragmas -Dmacintosh  -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants -Wno-unknown-pragmas -Dmacintosh -L/sw/lib conftest.c  >&5
clang: error: unknown argument: '-falign-loops-max-skip=15'
clang: error: unknown argument: '-falign-jumps-max-skip=15'
clang: warning: optimization flag '-falign-loops=16' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-falign-jumps=16' is not supported [-  Wignored-optimization-argument]
clang: warning: optimization flag '-falign-functions=16' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-falign-labels=16' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fprefetch-loop-arrays' is not supported [-Wignored-optimization-argument]
configure:2138: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2177: error: C compiler cannot create executables
See `config.log' for more details.

这台机器上的gcc版本是4.2.1。我检查了我的命令行工具。它们是最新版本。

macos gcc config
1个回答
0
投票

在MacOS上,gcc默认是clang的别名,LLVM C Compiler。您可能在系统上安装了gcc 4.2.1,但诊断:

clang: error: unknown argument: '-falign-loops-max-skip=15'

显示你正在调用的C编译器实际上是clang。 -falign-loops-max-skip不是clang的命令行选项。自4.4.7以来,它也不是GCC主流版本的选择 - 我可以随时查看。

evidence from 2006-falign-loops-max-skip是gcc 4.1和gcc 4.2的选项,尽管它没有the official 4.1 manual支持。还有evidence这个选项得到了llvm-gcc的支持,这是基于gcc 4.2的Apple引导的clang前身。

因此,你的gcc 4.2识别这个选项的可能性并不大。 2006年发布的Bochs 2.2.6与gcc 4.1同时具有现代性,它也适合它的选择。

我想你更愿意坚持使用你的uptodate gcc(别名clang),而不是建立这个非常古老的bochs包。在这种情况下,您可以将gcc 4.2指定为C编译器,仅用于通过./configure脚本的命令行构建bochs。如果您的gcc 4.2安装为/usr/local/bin/gcc-4,则运行:

./configure CC=/usr/local/bin/gcc-4 [...]

其中[...]是其他任何选项,如果有的话,你无论如何都要通过。

这可能会让你超过./configure错误,但如果解决这个问题暴露下一个问题,我不会感到惊讶。

© www.soinside.com 2019 - 2024. All rights reserved.