取り組んでいる組み込みプロジェクトでtallocを使用できるようにしたいと考えていますが、開発環境に組み込む方法を決定できませんでした。問題の環境は、ARM GCC 4.4.1 を使用するベンダー提供の Windows IDE であり、私はそれを使用して ARM7 デバイスをターゲットにしています。
コンパイラが型の競合について不平を言う段階に達しました。
In file included from .\talloc-2.0.8\talloc.c:33:
.\talloc-2.0.8\lib\replace/replace.h:626: error: conflicting types for 'ptrdiff_t'
c:\program files (x86)\cypress\psoc creator\2.2\psoc creator\import\gnu_cs\arm\4.4.1\bin\../lib/gcc/arm-none-eabi/4.4.1/include/stddef.h:149: note: previous declaration of 'ptrdiff_t' was here
.\talloc-2.0.8\lib\replace/replace.h:848: error: conflicting types for 'useconds_t'
c:\program files (x86)\cypress\psoc creator\2.2\psoc creator\import\gnu_cs\arm\4.4.1\bin\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/sys/types.h:253: note: previous declaration of 'useconds_t' was here
.\talloc-2.0.8\talloc.c:123: error: expected specifier-qualifier-list before 'uint8_t'
replace.h が、talloc ソース ツリーに存在しない config.h というファイルをインクルードしようとしていることに気付きました。この問題は、その名前で空のファイルを作成することで回避しました。システムによって既に定義されている関数をtallocに通知するためにconfig.hを使用するという考えはありますか? #define
これは、ディレクティブを使用してreplace.hが既存の型を置き換えようとするのを防ぐだけの問題ですか?
プロジェクトで自分で書いていないコードを使用しようとしたのはこれが初めてであるため、これらの競合を調整する方法について多少混乱しています。