NSIS:尽管进行了预处理或得到警告,但检测到未知变量/常数“测试”

时间:2018-08-13 13:24:55

标签: nsis

如果设置了标志,我只会使用一些代码。所以我得到了警告

Variable "test" not referenced or never set, wasting memory!

所以我使用预处理器命令

!if ${Flag} == 1
    Var test
!endif

但是我仍然收到警告

unknown variable/constant "test" detected, ignoring (macro:_==:1)

那么为什么我仍然会收到警告,以及如何禁用该警告: 也许我可以使用!pragma禁用警告。但这仅适用于nsis3。我在nsis2可以做什么?

1 个答案:

答案 0 :(得分:1)

您最有可能在webapi附近弄乱了!if的警卫。

$test

如果您从未在!define Flag 1 !if ${Flag} == 1 Var test !endif / Variable "test" not referenced or never set, wasting memory!中访问$test,则会打印Section

另一方面

Function
如果代码未先执行Section ${If} $test == "something" ${EndIf} SectionEnd

将打印unknown variable/constant "test" detected, ignoring (macro:_==:1)

最后

Var test

由于某些原因也会打印Var test Section ${If} $test == "something" ${EndIf} SectionEnd ,但是如果您实际上在代码中的某个地方为Variable "test" not referenced or never set, wasting memory!分配了内容,则警告消失了。

$test