AzardCry 0 16 марта, 2023 Опубликовано 16 марта, 2023 (изменено) · Жалоба Доброго времени суток! У меня появилось два вопроса, но по сути своей они относительно близки, опубликую их вместе. 1. Для целей обучения хотел написать программу на ассемблере, но только чтобы в процедуру __main программа заходила после инициализации (т.е. после startup/system). Попытался добавить в свой main.s эти файлы с помощью INCLUDE/GET - выдаёт ошибки (изображение 1). Подскажите, как решить вопрос? 2. В проекте main.cpp не видит исполняемые файлы при компиляции, судя по ошибке (рисунок 2). Делал следующее: - Пути проверял на наличие кириллицы, сейчас там только пробелы - не помогает, если убрать и их - не помогает - Добавлял директиву USE_STDPERIPH_DRIVER, указывал вручную пути к библиотекам - не помогает. - Пробовал добавлять в программу все библиотеки вручную в main.cpp - не помогает - Запускал из разных каталогов - не помогает Все библиотеки из SPL, которая лежит там, где должна лежать после установки, среда их прекрасно видит, отображает в интерфейсе, позволяет открыть и просмотреть. Объектные o. файлы после компиляции в папке проекта есть. В чем же дело? Заранее благодарен за ответы! Изменено 16 марта, 2023 пользователем haker_fox Тему перенёс. Для Keil есть свой подфорум. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 172 16 марта, 2023 Опубликовано 16 марта, 2023 · Жалоба Нельзя .h файл подключать в исходник ассемблера. Он же тупо вставляет текст, а синтаксис Си к синтаксису асма как друг подруги моего давнего знакомого - т.е. никак. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AzardCry 0 16 марта, 2023 Опубликовано 16 марта, 2023 · Жалоба 10 часов назад, Arlleex сказал: Нельзя .h файл подключать в исходник ассемблера. Он же тупо вставляет текст, а синтаксис Си к синтаксису асма как друг подруги моего давнего знакомого - т.е. никак. То есть способа нет? Так не хотелось ручками все описывать... Касательно компиляции .cpp файлов следующая особенность - .c (все старые проекты у меня на нём) исходник собирается без проблем, может сможете подсказать что-то? Спасибо за ответ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 172 16 марта, 2023 Опубликовано 16 марта, 2023 · Жалоба Конкретного вопроса по cpp я не понял, поэтому ничего не могу сказать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AzardCry 0 23 марта, 2023 Опубликовано 23 марта, 2023 (изменено) · Жалоба В 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. Трудность разрешилась - для того, чтобы main.cpp не вызывал ошибок, упомянутых в вопросе, нужно указать ключ -cpp в закладке C/C++ Изменено 23 марта, 2023 пользователем AzardCry Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 23 марта, 2023 Опубликовано 23 марта, 2023 · Жалоба 4 часа назад, AzardCry сказал: нужно указать ключ -cpp в закладке C/C++ Насколько я понимаю - вы заставили принудительно все файлы (включая библиотеку SPL) компилироваться в режиме C++. Не думаю, что это правильное решение - языки отличаются и не всякий C-код будет собираться как код C++. А надо было просто разобраться, почему включаемые в ваш main.cpp объявления C-функций не имеют спецификатора extern "C". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться