未知类型名称'va_list'

问题描述

将Android Studio 4.1与ndk版本21.3.6528147和c ++一起使用,在构建过程中遇到以下错误:

  In file included from G:/Repos/JTPieterse/jtpvk/android/jtpvkad/app/src/main/cpp/../../../../../../headers/Instance.hpp:4:
In file included from G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\vector:273:
In file included from G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\iosfwd:95:
In file included from G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\wchar.h:118:
In file included from G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\local\include\wchar.h:32:
In file included from G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\wchar.h:33:
In file included from G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\stdio.h:107:
G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\stdio.h:140:45: error: unknown type name 'va_list'; did you mean 'jtpvk::va_list'?

当我在编辑器中打开文件stdio.h并单击va_list上的ctrl-b时,它将显示文件stdarg.h,其中定义了typedef。因此,编辑器似乎正常工作。此外,在我的项目jtpvk中没有为va_list定义任何定义,因为问题提示例如'jtpvk :: va_list'

以某种方式我怀疑没有为编译器/链接器设置的路径或环境变量。

上面的列表在构建每个文件时会多次出现。 一些额外的行:

G:/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include\stdio.h:302:62: error: unknown type name 'va_list'; did you mean 'jtpvk::va_list'?

  int vsnprintf(char* __buf,size_t __size,const char* __fmt,va_list __args) __printflike(3,0);   

G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\9.0.8\include\stdarg.h:14:27: note: 'jtpvk::va_list' declared here
  typedef __builtin_va_list va_list;  G:/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include\stdio.h:303:49: error: unknown type name 'va_list'; did you mean 'jtpvk::va_list'?
  int vsscanf(const char* __s,va_list __args) __scanflike(2,0);
                                                  ^
  G:\Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\9.0.8\include\stdarg.h:14:27: note: 'jtpvk::va_list' declared here
  typedef __builtin_va_list va_list;  

fatal error: too many errors emitted,stopping now [-ferror-limit=]
  20 errors generated.  

ninja: build stopped: subcommand failed.

Instance.hpp:

#pragma once

#include <VkLib.hpp>
#include <vector>
#include "Confirm.hpp"
#include "Settings.hpp"

namespace jtpvk
{
  class Instance
  {
  public:

    auto vk_instance() -> VkInstance;

    auto initialize(Settings* settings_p) -> void;

    auto finalize() -> void;

    auto create() -> void;

    auto add_layers(std::vector<const char*> instance_layers_p)->void;

  private:
    Settings* settings_m = nullptr;

    VkInstance vk_instance_m = nullptr;

    std::vector<const char*> instance_layers_m = {};

    static auto create_application_info()->VkApplicationInfo;

    static auto create_info()->VkInstanceCreateInfo;
  };
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)