1. ホーム
  2. c++

[解決済み] エラー: 異なる型での typedef 再定義

2022-02-15 13:34:11

質問

NDKを搭載したAndroid Studioでc++のライブラリをコンパイルしようとすると、エラーが発生します。

C:\AndroidSDK\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\..\lib64\clang\3.8.275480\include\stddef.h:62:23: error: typedef redefinition with different types ('unsigned long' vs 'unsigned int') typedef __SIZE_TYPE__ size_t; ^../../../../src/main/cpp/include\Crypto/Core/Types.h:20:22: note: previous definition is here typedef unsigned int size_t;

を定義すると

typedef unsigned long size_t;

得ることができる。

C:\AndroidSDK\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\..\lib64\clang\3.8.275480\include\stddef.h:62:23: error: typedef redefinition with different types ('unsigned int' vs 'unsigned long') typedef __SIZE_TYPE__ size_t;^  ../../../../src/main/cpp/include\Crypto/Core/Types.h:20:23: note: previous definition is here typedef unsigned long size_t;

どうすれば直るのでしょうか?

どのように解決するのですか?

size_t はすでにいくつかの C/C++ 標準で定義されているデータ型です。 言語でまだ定義されていない他のものを typedef してみてください。

例:-)

typedef unsigned long my_size_t;