错误:使用未声明的标识符'vkFreeDescriptorSets',即使已声明

时间:2019-02-06 15:35:30

标签: c++ visual-studio ndk-build

使用ndk-build在模拟器或智能手机上运行代码时,即使标识符是在不同的类中声明的,我也会收到上面的错误(请参见下面的代码)。 在我的PC上使用Visual Studio来运行它,我从未遇到过任何问题。

这是发生问题的地方:

class DescriptorSetList : public VulkanResourceList<VkDescriptorSet>
{
private:
    VkDescriptorPool descriptorPool;
public:
    DescriptorSetList(VkDevice &dev, VkDescriptorPool pool) : VulkanResourceList(dev), descriptorPool(pool) {};

    ~DescriptorSetList()
    {
        for (auto& descriptorSet : resources)
        {
            vkFreeDescriptorSets(device, descriptorPool, 1, &descriptorSet.second);
        }
    }

    VkDescriptorSet add(std::string name, VkDescriptorSetAllocateInfo allocInfo)
    {
        VkDescriptorSet descriptorSet;
        VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet));
        resources[name] = descriptorSet;
        return descriptorSet;
    }
};

这是声明标识符的地方:

VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
    VkDevice                                    device,
    VkDescriptorPool                            descriptorPool,
    uint32_t                                    descriptorSetCount,
    const VkDescriptorSet*                      pDescriptorSets);

我尝试了在这里找到的声明和调用标识符的不同方法,但是没有任何效果。

我在做什么错了?

0 个答案:

没有答案