У меня есть пара библиотек, созданных с помощью avr-ar. Каждый содержит несколько объектов.
Объектам в библиотеке1 нужны символы из объектов в библиотеке2. Проблема в том, что когда я пытаюсь скомпилировать все это, я получаю 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)
Я использую Ubuntu 12.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)
Если я извлекаю объекты из библиотек и помещаю все в библиотеку, все идет хорошо.
Я хотел бы сохранить их отдельно, есть ли способ добиться этого?
LIBS=library1.a library2.a library1.a
Tough, я все еще жду более чистого решения, какого-то флага компилятора. - person johndoe   schedule 14.08.2012