需要建议以尝试构建此应用遇到2个错误

问题描述

在我自己学习C ++编码的同时,我试图将Dolphin模拟器中的功能实现为非官方版本。现在,我能够减少一个文件错误数量,但是这些都是我为此得到的错误

一个代码错误是出于以下原因:

const u64 bytes_per_chunk = std::min(out_data_per_chunk,VolumeWii::GROUP_DATA_SIZE);
      const u64 total_size = blocks_in_this_group * VolumeWii::BLOCK_DATA_SIZE;
      const u64 data_offset = parameters.data_offset + write_offset_of_group;

当我引用““时,出现一个错误,指出(C:\ Users \ Desktop \ dolphin \ Source \ Core \ discIO \ WIABlob.cpp:1465:39:错误:没有匹配的函数调用“ min” std :: min“它也出现在这里

const u64 bytes_to_write = std::min(bytes_to_write_total,VolumeWii::GROUP_DATA_SIZE);

错误=(C:\ Users \ Desktop \ dolphin \ Source \ Core \ discIO \ WIABlob.cpp:1488:42:错误:没有匹配的函数调用'min')

-------------------------------------------- ----------------------------------

我遇到的下一个错误(同样,所有错误都在同一.cpp文件中)也来自相同的代码行:

const u64 bytes_per_chunk = std::min(out_data_per_chunk,VolumeWii::GROUP_DATA_SIZE);
      const u64 total_size = blocks_in_this_group * VolumeWii::BLOCK_DATA_SIZE;
      const u64 data_offset = parameters.data_offset + write_offset_of_group;

在这里

const u64 bytes_to_write = std::min(bytes_to_write_total,VolumeWii::GROUP_DATA_SIZE);

我在以后的设置中遇到的错误是[C:\ Users \ Desktop \ dolphin \ Source \ Core \ discIO \ WIABlob.cpp:1465:21:错误:const类型'const u64'的对象的认初始化(又名“ const unsigned long”常量)]->这与Android Studio中的“ bytes_to_write”行相关/突出显示。 还显示在下方,但仍与另一“ bytes_to_write”行有关[C:\ Users \ Desktop \ dolphin \ Source \ Core \ discIO \ WIABlob.cpp:1488:25:错误:const类型为'const u64'的对象的认初始化(又名“ const unsigned long”常量)]

到目前为止,这是导致我无法构建应用程序的两个错误

============================================= ========

构建错误

In file included from ../../../../../../Core/discIO/WIABlob.cpp:5:
In file included from ../../../../../../Core\discIO/WIABlob.h:21:
In file included from ../../../../../../Core\discIO/WiiEncryptionCache.h:12:
../../../../../../Core\discIO/VolumeWii.h:91:3: warning: 'discIO::VolumeWii::CheckBlockIntegrity' hides overloaded virtual function [-Woverloaded-virtual]
  CheckBlockIntegrity(u64 block_index,const Partition &partition,const Partition partition1) const ;
  ^
../../../../../../Core\discIO/Volume.h:112:16: note: hidden overloaded virtual function 'discIO::Volume::CheckBlockIntegrity' declared here: different number of parameters (2 vs 3)
  virtual bool CheckBlockIntegrity(u64 block_index,const Partition& partition) const
               ^
In file included from ../../../../../../Core/discIO/WIABlob.cpp:5:
In file included from ../../../../../../Core\discIO/WIABlob.h:21:
In file included from ../../../../../../Core\discIO/WiiEncryptionCache.h:12:
../../../../../../Core\discIO/VolumeWii.h:141:10: warning: 'discIO::VolumeWii::CheckBlockIntegrity' hides overloaded virtual function [-Woverloaded-virtual]
    bool CheckBlockIntegrity(u64 block_index,const std::vector<u8> &encrypted_data,^
../../../../../../Core\discIO/Volume.h:112:16: note: hidden overloaded virtual function 'discIO::Volume::CheckBlockIntegrity' declared here: different number of parameters (2 vs 3)
  virtual bool CheckBlockIntegrity(u64 block_index,const Partition& partition) const
               ^
../../../../../../Core/discIO/WIABlob.cpp:1465:39: error: no matching function for call to 'min'
          const u64 bytes_per_chunk = std::min(out_data_per_chunk,VolumeWii::GROUP_DATA_SIZE);
                                      ^~~~~~~~
C:/Android/SDK/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\algorithm:2532:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('unsigned long' vs. 'unsigned int')
min(const _Tp& __a,const _Tp& __b)
^
C:/Android/SDK/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\algorithm:2543:1: note: candidate template ignored: Could not match 'initializer_list<type-parameter-0-0>' against 'unsigned long'
min(initializer_list<_Tp> __t,_Compare __comp)
^
C:/Android/SDK/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\algorithm:2523:1: note: candidate function template not viable: requires 3 arguments,but 2 were provided
min(const _Tp& __a,const _Tp& __b,_Compare __comp)
^
C:/Android/SDK/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\algorithm:2552:1: note: candidate function template not viable: requires single argument '__t',but 2 arguments were provided
min(initializer_list<_Tp> __t)
^
../../../../../../Core/discIO/WIABlob.cpp:1488:42: error: no matching function for call to 'min'
              const u64 bytes_to_write = std::min(bytes_to_write_total,VolumeWii::GROUP_DATA_SIZE);
                                         ^~~~~~~~
C:/Android/SDK/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\algorithm:2532:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('unsigned long' vs. 'unsigned int')
min(const _Tp& __a,but 2 arguments were provided
min(initializer_list<_Tp> __t)
^

如果您想在此.cpp文件中查看我正在使用的原始代码https://github.com/JosJuice/dolphin/blob/660d81a10b4a8ff9a61631e69fb93e9010bccbc0/Source/Core/DiscIO/WIABlob.cpp

我希望我能得到所有好的建议来解决此问题,并最终构建了Apk(现在已经被困了几周了)

解决方法

您的错误消息应该很清楚。相关部分:

../../../../../../Core/DiscIO/WIABlob.cpp:1465:39: error: no matching function for call to 'min'
          const u64 bytes_per_chunk = std::min(out_data_per_chunk,VolumeWii::GROUP_DATA_SIZE);
                                      ^~~~~~~~
C:/Android/SDK/ndk/21.3.6528147/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\algorithm:2532:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('unsigned long' vs. 'unsigned int')
min(const _Tp& __a,const _Tp& __b)

关键部分是您要向std::min传递不同的类型,这是不允许的(请考虑返回类型是什么)。您需要将其中一个参数转换为另一种类型,或者可以明确说明所需的std::min版本。

转换看起来像这样:

const u64 bytes_per_chunk = std::min(out_data_per_chunk,static_cast<unsigned long>(VolumeWii::GROUP_DATA_SIZE));

显式调用版本如下:

const u64 bytes_per_chunk = std::min<u64>(out_data_per_chunk,VolumeWii::GROUP_DATA_SIZE);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...