2

我最初聘请某人为我编写一个 dll,我正在使用他给我的编译后的 dll,但它有一个我需要删除的 msgbox 弹出窗口。所以我从代码中删除了它并重新编译。他的代码需要 QtCore 库,所以我下载并安装了它。但是在那个库中我得到了很多错误,所有的错误都是语法错误:<cv-qualifer>

我用谷歌搜索了语法错误:<cv-qualifer>但这似乎是一个很常见的错误。

出现该错误的每一行都以“ asm volatile(”

我假设 asm 是汇编?我错过了一些我需要编译的东西吗?

任何帮助将不胜感激。

谢谢

编辑:完整的错误代码:错误 C2059:语法错误:'' 这是它发生一次的来源。每次发生它都以 asm volatile 开头

asm volatile("0:\n"
             "ldrex %[result], [%[_q_value]]\n"
             "eors %[result], %[result], %[expectedValue]\n"
             "strexeq %[result], %[newValue], [%[_q_value]]\n"
             "teqeq %[result], #1\n"
             "beq 0b\n"
             : [result] "=&r" (result),
               "+m" (_q_value)
             : [expectedValue] "r" (expectedValue),
               [newValue] "r" (newValue),
               [_q_value] "r" (&_q_value)
             : "cc", "memory");
4

2 回答 2

4

你在那里有 QT 作为 ARM 的源代码。您是为 ARM 构建的吗?您需要从源代码构建 QT 吗?

于 2012-04-18T17:50:46.473 回答
0

cv 是const和/或的标准简写volatile。我猜volatile关键字是罪魁祸首。

asm volatile 应该指示汇编代码中的副作用,因此不应移动 asm 代码。它看起来像是Visual Studio 不同的 gcc 扩展。

试试 __asm volatile 看看会发生什么。不,仍然是 gcc 特定的。

检查MS 文档。他们使用带有 co cv 资格的 __asm。

于 2012-04-18T17:56:04.790 回答