реклама на сайте
подробности

 
 
> Сборка проекта stm через cmake
zemlemer
сообщение Apr 16 2013, 13:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-06-08
Пользователь №: 38 190



Добрый день. Есть проект, который собирается и работает из под eclips-а. Так как смог осилить заливку через dfu-util, хотелось бы попытаться избавиться от eclipse и перевести разработку на cmake. Написал файл тулчейна, и проекта. При сборке cmake по команде cmake -DCMAKE_TOOLCHAIN_FILE=~/Projects/Sampler/stm32.cmake -G "Unix Makefiles" говорит:
Код
-- The C compiler identification is GNU 4.5.2
-- The CXX compiler identification is GNU 4.5.2
-- Check for working C compiler: /opt/codesourcery/arm-2011.03/bin/arm-none-eabi-gcc
-- Check for working C compiler: /opt/codesourcery/arm-2011.03/bin/arm-none-eabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /opt/codesourcery/arm-2011.03/bin/arm-none-eabi-g++
-- Check for working CXX compiler: /opt/codesourcery/arm-2011.03/bin/arm-none-eabi-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- The ASM compiler identification is GNU
-- Found assembler: /opt/codesourcery/arm-2011.03/bin/arm-none-eabi-as
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxxx/Projects/Sampler


Далее по команде make идет идет компиляция всех исходников, кроме, почему-то ассемблерного файла с векторами, хотя он в целях указан. Далее следует ошибка линкера:
Код
/opt/codesourcery/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld: cannot open linker script file -nostartfiles: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [Sampler.elf] Error 1
make[1]: *** [CMakeFiles/Sampler.elf.dir/all] Error 2
make: *** [all] Error 2


Отсюда 3 вопроса:
1. Как заставить cmake брать arm-none-eabi-ld вместо ld из другой директории (хотя, судя по всему, файлы одинаковые).
2. Почему не хочет браться ассмеблерный файл с векторами?
3. Как его попытаться уговорить собраться?
Прикрепленные файлы
Прикрепленный файл  Sampler.zip ( 132.86 килобайт ) Кол-во скачиваний: 13
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mdmitry
сообщение Apr 16 2013, 14:05
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(zemlemer @ Apr 16 2013, 17:22) *
[code]/opt/codesourcery/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld: cannot open linker script file -nostartfiles: No such file or directory

Судя по сообщению не правильно сгенерированы опции для линкера.
К сожалению Вы не приложили сгенерированный makefile. Попробуйте запустить make c опцией -n и посмотрите вывод на предмет правильности ключей для компилятора, линкера и ассемблера. Ассемблировать можно и с помощью gcc (g++), задав необходимые ключи.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
zemlemer
сообщение Apr 16 2013, 14:48
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 10-06-08
Пользователь №: 38 190



Цитата(mdmitry @ Apr 16 2013, 18:05) *
Судя по сообщению не правильно сгенерированы опции для линкера.
К сожалению Вы не приложили сгенерированный makefile. Попробуйте запустить make c опцией -n и посмотрите вывод на предмет правильности ключей для компилятора, линкера и ассемблера. Ассемблировать можно и с помощью gcc (g++), задав необходимые ключи.


Опции для линкера прописаны в файле тулчейна и проекта. Утилита cmake генерит множество неудобочитаемых make файлов.
wПри проходе make -n вызывается странное: /usr/bin/cmake -E cmake_link_script CMakeFiles/Sampler.elf.dir/link.txt --verbose= содержимое которого вызов gcc с ключами компиляции линекра и перечислением всех сгенерированных объектников, кроме ассемблерного файла с векторами. К сожалению, вопрос остается открытым. Спасибо.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Apr 16 2013, 15:11
Сообщение #4


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(zemlemer @ Apr 16 2013, 18:48) *
Опции для линкера прописаны в файле тулчейна и проекта. Утилита cmake генерит множество неудобочитаемых make файлов.
wПри проходе make -n вызывается странное: /usr/bin/cmake -E cmake_link_script CMakeFiles/Sampler.elf.dir/link.txt --verbose= содержимое которого вызов gcc с ключами компиляции линекра и перечислением всех сгенерированных объектников, кроме ассемблерного файла с векторами. К сожалению, вопрос остается открытым. Спасибо.

make файлы автоматически сгенерированные понять можно, в них обычно нет неявных правил с шаблонами.
насколько я помню, cmake генерирует файл для запуска make, а в него включены сгенерированные файлы.
А ключи линкера правильные?

На форуме есть пользователь с ником SyncLair, он использует cmake и имеет разработку для ARM (ссылка). Гляньте, может пригодится его конфигурация.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01392 секунд с 7
ELECTRONIX ©2004-2016