Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何使用自定义汇编程序来处理clang?_C_Clang_Cross Compiling - Fatal编程技术网

我如何使用自定义汇编程序来处理clang?

我如何使用自定义汇编程序来处理clang?,c,clang,cross-compiling,C,Clang,Cross Compiling,我编译了clang以将其用作ARM的交叉编译器(通过使用/configure--target=armv7l unknown linux gnueabihf),但当我尝试编译任何C代码时,它会尝试使用/usr/bin/as。我已经为ARM编译了binutils,它们位于单独的目录中。我如何指导clang(或llvm)使用我指定的汇编程序?我一直在使用./configure从源目录进行配置时遇到困难,最终放弃了。现在我总是从一个单独的目录进行配置,即..//configure,尽管有人告诉我建议使用

我编译了clang以将其用作ARM的交叉编译器(通过使用
/configure--target=armv7l unknown linux gnueabihf
),但当我尝试编译任何C代码时,它会尝试使用
/usr/bin/as
。我已经为ARM编译了binutils,它们位于单独的目录中。我如何指导clang(或llvm)使用我指定的汇编程序?

我一直在使用./configure从源目录进行配置时遇到困难,最终放弃了。现在我总是从一个单独的目录进行配置,即..//configure,尽管有人告诉我建议使用绝对路径进行配置

您的ARM binutils应安装在用于clang的相同前缀中,并确保它们在配置和构建clang时位于路径中,即路径=/some/prefix/bin:$path/configure--target=armv7l未知linux gnueabihf。如果出于打包目的将它们保存在单独的目录中,那么让install DESTDIR=应该会有所帮助

我通常不构建clang,但我用于devkitARM的构建脚本可能会有所帮助-

尝试传递--host选项进行配置,这将导致所有cc-ar etc实用程序都以armv7l unknown linux gnueabihf作为前缀- 例如:

由于您正在使用配置自动工具,请查看:

我知道我最近做了这件事-让我看看是否有配置文件。对于ARM,它不应该使用机器代码生成器,而不是尝试运行汇编程序吗?您是否尝试将
--集成为
?您能否显示一个使用
-v
的示例命令行和输出?我的配置行,尽管它看起来没有太多帮助:
。/llvm/configure--target=mipsel sde elf--prefix=/some/prefix--enable optimized
。这确实很好,并以
/some/prefix/mipsel sde elf的身份运行。这就是说,我通常使用集成汇编程序,所以我已经有一段时间没有测试了。@CarlNorum我也有集成汇编程序(
armv7l unknown linux gnueabihf llvm as
)和clang在同一个文件夹中,但它仍然使用
/usr/bin/as
。我不确定是否
armv7l unknown linux gnueabihf llvm as
内部调用
/usr/bin/as
。在调用时使用
-v
标志应该向您显示每一个使用完整命令行运行的工具。@CarlNorum
-v
标志只显示
/usr/bin/as
的调用。对不起,但我以前从未在与源目录相同的目录中配置过clang。为了简洁起见,我在问题中包含的命令省略了
--prefix
标志。正如您从CarlNorum的评论中所看到的,我确实注意到他包含了
--prefix
标志,但它对我仍然不起作用。奇怪的是,编译过程似乎确实在
bin
(使用正确的目标三元组)文件夹中创建了集成汇编程序二进制文件,但它从未使用它。我一定会看看你在回答中包含的构建脚本。我认为你误解了这个问题@Joseph询问如何使用clang交叉编译程序,但您的答案与“如何交叉编译clang本身”有关。
./configure --host=armv7l-unknown-linux-gnueabihf --build=i686-unknown-linux-gnu