我在OS X上构建了一个x86_64-elf内核。我的构建系统是autotools。我成功编译的gcc为x86_64的小精灵在交叉编译在OS X当我运行从自动工具生成的配置脚本我有一个问题:autotools:C编译器无法创建可执行文件
configure: error: C compiler cannot create executables
See `config.log' for more details
所以我看config.log的看到:
cannot find crt0.o: No such file or directory
collect2: error: ld returned 1 exit status
这非常合理。交叉编译器不会生成可执行文件,因为没有关联的运行时。但是我不需要或者不想让我的编译器生成一个可执行文件,我会将其适当地链接到我的引导程序。我如何告诉autotools不检查这个?
难道你不能只在你的'configure.ac'脚本中设置'CC'变量吗?但它可能无法正常工作,因为其他测试可能会创建脚本尝试运行的可执行文件。 – 2012-04-12 14:22:04
我在运行configure时设置了CC变量,它在configure.ac中的设置非常糟糕。无论如何,这并没有回答我如何让它停止检查编译器是否可以创建可执行文件的问题。 – dschatz 2012-04-12 14:34:44
告诉configure你正在交叉编译。使用'./configure --host = x86_64-unknown-linux'。如果构建类型与主机类型不同,某些测试可能会被跳过。 – 2012-04-12 16:00:32