запрос члена "X" в чем-то, кроме структуры или союза
я программировал самобалансирующегося робота, я пишу код в vscode, используя расширение platformio.
когда я помещаю код, который мне нужен, чтобы получить угол из гироскопа в другом файле (с именем angle.c) и включаю его в основную программу, ide выдает ошибку, в каждой строке я использую библиотеку Wire в angular.c, однако тот же код скопируйте и вставьте в основную программу, и он заработает.
PS the angle.c — это просто файл функций и не имеет никакого класса.
@Allaw Hussein, 👍0
Обсуждение1 ответ
Лучший ответ:
Файл .c скомпилирован компилятором C. Если вы включите файл Wire.h, содержащий определение класса, компилятор C не поймет его и выдаст ошибки.
Если в вашем файле angular.c нет кода C, несовместимого с C++, измените расширение файла на .cpp, и он будет скомпилирован компилятором C++.
- Изменение адреса I2C MPU-6050
- MPU6050 не выдает выход
- Использование MPU-6050 без I2C
- Почему Wire.write дважды?
- Мультиплексор Adafruit MPU-6050 и adafruit I2C
- Несколько устройств I2C, подключенных к одному Arduino Uno?
- MPU-6050 с Arduino – вскрытие
- Код показывает одинаковые углы для всех трех осей гироскопа MPU
Проверьте команду при компиляции angle.c. Это тот самый компилятор? Вместо этого попробуйте расширение .cpp., @Mikael Patel
компилятор проверен, попробую расширение .cpp, @Allaw Hussein
вы не можете включить Wire.h в .c . Wire.h определяет класс, @Juraj
то есть вы правы, нет, пожалуйста, опубликуйте это как ответ, чтобы я мог его принять, @Allaw Hussein
решение состоит в том, чтобы изменить расширение на .cpp, потому что Wire.h определяет классы, @Allaw Hussein