avr-arを使用して作成されたライブラリがいくつかあります。それぞれにいくつかのオブジェクトが含まれています。
library1のオブジェクトには、library2のオブジェクトのシンボルが必要です。問題は、すべてをコンパイルしようとすると問題が発生することですundefined reference
。
これは失敗しているところです。$(INCLUDE)$(CFLAGS)$(LIBS)では何も派手なことはありません。
CFLAGS=-mmcu=atmega328p -DF_CPU=16000000UL -Os -w -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
LIBS=library1.a library2.a
$(CXX) $(INCLUDE) $^ $(CFLAGS) -o $@ $(LIBS)
私はUbuntu12.04を実行していて
Using built-in specs.
COLLECT_GCC=avr-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.5.3/lto-wrapper
Target: avr
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=avr
Thread model: single
gcc version 4.5.3 (GCC)
ライブラリからオブジェクトを抽出し、すべてをライブラリに入れると、すべてがうまくいきます。
それらを別々に保ちたいのですが、これを達成する方法はありますか?