-mimplicit-it编译器标志无法识别

dmagree

我正在尝试为Tegra TK1编译C ++库。该库链接到TBB,这是我使用软件包管理器提取的。编译期间出现以下错误

/tmp/cc4iLbKz.s: Assembler messages:
/tmp/cc4iLbKz.s:9541: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'

有点谷歌搜索,这个问题使我尝试添加-mimplicit-it=thumb到CMAKE_CXX_FLAGS中,但是编译器无法识别它。

我正在使用内核3.10.40-grinch-21.3.4在tegra上进行编译,并使用gcc 4.8.4编译器(这是在我输入c ++ -v时返回的内容)

我不确定初始错误消息的含义,尽管我认为这与TBB链接库有关,而不与我正在编译的源有关。该修复程序的问题也很神秘。谁能对此有所启发?

不是这样的

-mimplicit-it汇编程序的选项,而不是编译器的选项因此,在您的makefile中没有特定的汇编器标志的情况下(考虑到您似乎没有使用单独的汇编器步骤,您可能没有该标志),您将需要使用编译器-Wa选项来传递它通过,即-Wa,-mimplicit-it=thumb

问题的根源几乎可以肯定是一些内联程序集-如果确实只链接预构建的库,则可能来自头文件中的静态内联程序-包含有条件执行的指令(我猜它类似于cmpxchg实施)。由于您的工具链可以很好地配置为编译为Thumb指令集-这需要在前面的it(If-Then)指令来设置条件指令-默认情况下,另一种选择可能是仅编译-marm(和/或-mthumb在适当时删除)并完全不使用Thumb来解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章