1

取り組んでいる組み込みプロジェクトで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が既存の型を置き換えようとするのを防ぐだけの問題ですか?

プロジェクトで自分で書いていないコードを使用しようとしたのはこれが初めてであるため、これらの競合を調整する方法について多少混乱しています。

4

1 に答える 1

2

config.h自動的に生成する必要があります。tmalloc の場合は、 waf (python ベースのビルド システム)によって行われます。

$ python ./buildtools/bin/waf configure
Checking for program gcc or cc           : /usr/lib/ccache/gcc 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for gcc                         : ok  
Checking for program git                 : /usr/bin/git 
Check for -MD                            : yes 
....
$ python ./buildtools/bin/waf build
.....
于 2013-01-19T00:08:03.237 に答える