Перейти к содержанию
    

Keil. Библиотеки

Доброго времени суток!

 

У меня появилось два вопроса, но по сути своей они относительно близки, опубликую их вместе.

 

1. Для целей обучения хотел написать программу на ассемблере, но только чтобы в процедуру __main программа заходила после инициализации (т.е. после startup/system). Попытался добавить в свой main.s эти файлы с помощью INCLUDE/GET - выдаёт ошибки (изображение 1). Подскажите, как решить вопрос?

 

2. В проекте main.cpp не видит исполняемые файлы при компиляции, судя по ошибке (рисунок 2). Делал следующее:

    - Пути проверял на наличие кириллицы, сейчас там только пробелы - не помогает, если убрать и их - не помогает

    - Добавлял директиву USE_STDPERIPH_DRIVER, указывал вручную пути к библиотекам - не помогает.

    - Пробовал добавлять в программу все библиотеки вручную в main.cpp - не помогает

    - Запускал из разных каталогов - не помогает

Все библиотеки из SPL, которая лежит там, где должна лежать после установки, среда их прекрасно видит, отображает в интерфейсе, позволяет открыть и просмотреть. Объектные o. файлы после компиляции в папке проекта есть. В чем же дело?

 

Заранее благодарен за ответы!

2.png

1.png

Изменено пользователем haker_fox
Тему перенёс. Для Keil есть свой подфорум.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нельзя .h файл подключать в исходник ассемблера. Он же тупо вставляет текст, а синтаксис Си к синтаксису асма как друг подруги моего давнего знакомого - т.е. никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, Arlleex сказал:

Нельзя .h файл подключать в исходник ассемблера. Он же тупо вставляет текст, а синтаксис Си к синтаксису асма как друг подруги моего давнего знакомого - т.е. никак.

То есть способа нет? Так не хотелось ручками все описывать...

Касательно компиляции .cpp файлов следующая особенность - .c (все старые проекты у меня на нём) исходник собирается без проблем, может сможете подсказать что-то?

Спасибо за ответ!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 16.03.2023 в 07:53, AzardCry сказал:

Доброго времени суток!

 

У меня появилось два вопроса, но по сути своей они относительно близки, опубликую их вместе.

 

1. Для целей обучения хотел написать программу на ассемблере, но только чтобы в процедуру __main программа заходила после инициализации (т.е. после startup/system). Попытался добавить в свой main.s эти файлы с помощью INCLUDE/GET - выдаёт ошибки (изображение 1). Подскажите, как решить вопрос?

 

2. В проекте main.cpp не видит исполняемые файлы при компиляции, судя по ошибке (рисунок 2). Делал следующее:

    - Пути проверял на наличие кириллицы, сейчас там только пробелы - не помогает, если убрать и их - не помогает

    - Добавлял директиву USE_STDPERIPH_DRIVER, указывал вручную пути к библиотекам - не помогает.

    - Пробовал добавлять в программу все библиотеки вручную в main.cpp - не помогает

    - Запускал из разных каталогов - не помогает

Все библиотеки из SPL, которая лежит там, где должна лежать после установки, среда их прекрасно видит, отображает в интерфейсе, позволяет открыть и просмотреть. Объектные o. файлы после компиляции в папке проекта есть. В чем же дело?

 

Заранее благодарен за ответы!

2.png

1.png

 

2. Трудность разрешилась - для того, чтобы main.cpp не вызывал ошибок, упомянутых в вопросе, нужно указать ключ -cpp в закладке C/C++

Изменено пользователем AzardCry

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, AzardCry сказал:

нужно указать ключ -cpp в закладке C/C++

Насколько я понимаю - вы заставили принудительно все файлы (включая библиотеку SPL) компилироваться в режиме C++. Не думаю, что это правильное решение - языки отличаются и не всякий C-код будет собираться как код C++. А надо было просто разобраться, почему включаемые в ваш main.cpp объявления C-функций не имеют спецификатора extern "C".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...