我在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