私がインクルードした 2 つのヘッダー ファイルを取得しましたが、どちらも同じ名前の typedef を持っています。
aaa.h と bbb.h としましょう。それらは 2 つの無関係なサードパーティ パッケージからのものであり、これら 2 つのファイルを制御することはできませんが、使用する必要があります。両方のファイルを直接インクルードするわけではありませんが、最上位のヘッダー ファイルにサブインクルードされます。(つまり、それぞれを含む ah と bh を含めます)
名前の競合により、両方が含まれているとプログラムがコンパイルされません。
したがって、私の一時的な解決策は、myaaa.h と呼ばれる typedef のみを削除して、aaa.h をソース ツリーにコピーすることです。ファイルの先頭で、「#ifndef AAA_H, #define AAA_H」ラッパーをそのままにしておくので、myaaa.h をインクルードすると、AAA_H フラグが既に定義されているため aaa.h はインクルードされず、typedef の競合が間接的に削除されます。
そのようなファイルをソースに追加せずにこれを行うより賢い方法はありますか (そして、バージョン管理する必要があります)。
ありがとう!