Можно ли разбить проект на несколько папок?
Возможно разделить проект на серверные файлы. Однако похоже, что все они должны находиться в одной папке с файлом .ino.
Можно ли разделить проект на несколько папок? У меня есть несколько репозиториев git, которые я хочу использовать в одном проекте, и я не могу использовать их как библиотеки. У каждого репозитория должна быть своя папка…
@zhekaus, 👍2
Обсуждение1 ответ
Лучший ответ:
Я постараюсь дать ответ, так как не так просто понять, что вы имеете в виду.
Возможно, также лучше, если вы знаете, как работает Arduino IDE, прежде чем пытаться создавать сложные проекты.
Краткий ответ: Да, это возможно
Обычно у вас есть ino-файл, некоторые другие файлы и множество библиотек. Если вы хотите создать что-то для своего проекта, вы можете просто создать папку внутри папки библиотеки.
Но это не то, что вам нужно, верно?
Вы можете создать множество папок внутри своего проекта и включить любой заголовок в свои папки просто с помощью
#include "subfolder/yourfile.h"
Файлы не будут открываться в Arduino IDE.
Вы также можете создать свою "мини-библиотеку", чтобы компилятор скомпилировал ее вместе с вашим проектом. Эта библиотека должна находиться в подпапке с именем src
. На этом этапе он будет преобразован и скомпилирован для вашего проекта.
Простой рабочий пример:
testsub.ino
#include "src/test.h"
Test *test = new Test();
void setup(){
Serial.print(test->number());
}
void loop(){
}
Создайте подпапку src
и поместите файлы:
test.h
class Test
{
public:
Test();
int number();
};
и
test.cpp
#include "test.h"
Test::Test() {
}
int Test::number() {
return 95;
}
Если вам нужна другая "библиотека", вы можете создать еще одну подпапку с именем src
.
Вы знаете, это, наконец, нечто! Большое спасибо!
Однако как я могу иметь дополнительную подпапку с тем же именем src
?, @zhekaus
Вам нужно поместить вторую подпапку в папку src. И там вы можете разместить еще одну папку src. Это единственный способ на данный момент., @Adriano
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Разница между print() и println()
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
Какую операционную систему ты используешь?, @Majenko
@Majenko Win10. Имеет ли это значение для данного случая? В наше время все очень похоже везде., @zhekaus
Да, ты можешь. Это работает, и многие проекты используют подпапки. И НЕТ, вы не увидите их в своей Arduino IDE. Как сказал st2000, Arduino IDE проста, и людям она нравится, потому что она проста. Если вы хотите контролировать свой процессор и код, используйте PlatformIO., @Adriano
@Адриано как? Я могу ссылаться на заголовки в подпапках, но Arduino IDE не компилирует определения из подпапок. И, ребята, как вы вообще можете назвать это «простым»? Похоже, все просто только для простых дел., @zhekaus
Если у вас есть заголовок внутри подпапки, вы можете просто вызвать
#include "subfolder/header.h"
, и это сработает. Например, вы можете увидеть этот большой проект: https://github.com/xoseperez/espurna/tree/dev/code/espurna — но вы не увидите файлы внутри Arduino IDE. Простота означает, что если у вас нет навыков программирования, вы можете открыть и отредактировать что-то, не теряя времени, чтобы узнать, что такое IDE и как она работает. В будущем с версией PRO будет проще что-то разрабатывать... Надеюсь ;), @Adriano@Adriano Как я уже сказал, у меня нет проблем с заголовками. У меня есть файлы .cpp внутри подпапки. Как заставить IDE скомпилировать их? Мне не нужно работать с ними через IDE, это нормально., @zhekaus
@zhekaus Я написал ответ как ответ, а не как комментарий. Надеюсь, это нормально для вас. Я знаю, что вы хотите. Вам нужен комфорт Visual Studio в простом текстовом редакторе со встроенным компилятором. Вы можете использовать Visual Studio + Visual Micro, и у вас будут все удобства, которые вы хотите ;) Но Arduino IDE также дает вам множество возможностей для разработки более сложных проектов., @Adriano