【发布时间】:2021-01-01 14:41:38
【问题描述】:
我使用的是 arm 编译器固有的函数,但不是 GCC(即 arm 的 __strex)。我将 strex 函数用作内联函数的一部分。使用 arm 编译器可以正常工作。我有两个项目,使用 arm 编译器的目标和使用 GCC 的测试项目。使用 GCC,我无法通过我尝试过的许多变通方法来编译它。我一直无法在范围内获取变量。由于该函数是内联的,这意味着目标文件期望该函数在该文件的范围内。我不想修改目标以包含仅用于编译测试项目的头文件。有没有办法通过链接器或编译器属性创建一个函数,它的行为很像一个在整个代码库中具有全局范围的内在函数?
【问题讨论】:
-
没有声明,编译器不会知道你的函数。没有定义,编译器无法内联函数。
标签: c++ unit-testing arm intrinsics globals