C ++; ошибка компоновщика затмения - PullRequest
3 голосов
/ 25 марта 2012

Итак, я работаю над тем, чтобы моя IDE затмения работала, чтобы я мог разработать Arduino Uno в Eclipse. Мой C ++ слаб, так что это, вероятно, ошибка с моей стороны.

У меня есть программа blink, которая ищет библиотеку arduino, скомпилированную из библиотеки IDE arduino. Мой код указывает на файл заголовка, и мой код находит его в порядке; это означает, что я могу нажать на:

#include <arduino.h>

и иди просмотри заголовок

это: "C: /programs/arduino-1.0/hardware/arduino/cores/328p_lib/libuno_library.a" допустимый путь ... но я получаю следующую ошибку:

>****** Build of configuration Debug for project project1 ****
>make all 
>Building target: project1.elf
>Invoking: AVR C++ Linker
>avr-g++ -Wl,-Map,project1.map,--cref -L"C:\programs\arduino->1.0\hardware\arduino\cores\328p_lib" -mmcu=atmega328p -o "project1.elf"  ./code/code1.o   >-l"C:/programs/arduino-1.0/hardware/arduino/cores/328p_lib/libuno_library.a"
>c:/programs/winavr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: cannot find ->lC:/programs/arduino-1.0/hardware/arduino/cores/328p_lib/libuno_library.a
>make: *** [project1.elf] Error 1
>**** Build Finished ******

Ответы [ 2 ]

2 голосов
/ 25 марта 2012

Ну, потратив около двух дней веселья, я наконец нашел проблему.

http://sourceforge.net/projects/avr-eclipse/forums/forum/664382/topic/4640554

При добавлении статической библиотеки в компоновщик необходимо удалить префикс lib и суффикс .a. не уверен, что это такое.

2 голосов
/ 25 марта 2012

Щелкните правой кнопкой мыши на проекте> Нажмите C / C ++ BUild> Настройки> GCC C ++ Linker> Библиотеки

Нажмите первый значок Добавить> Добавить имя библиотеки (без суффикса .a суффикс будетдобавляется автоматически)

Это обеспечит добавление библиотеки в проект.

Если библиотека является частью другого проекта> Перейти к компилятору GCC C> каталоги> Добавить каталог

Это обеспечит наличие библиотеки для завершения компиляции.

...