gpt4 book ai didi

c++ - 在两个不同的 .o 文件中对多个函数进行多重定义。

转载 作者:行者123 更新时间:2023-11-28 07:42:00 25 4
gpt4 key购买 nike

基本上我有很多这样的错误:

    IMU/IMU.cpp.o: In function `MPU6050::dmpInitialize()':
Projects/Arduino/libraries/IMU/MPU6050_6Axis_MotionApps20.h:281: multiple definition of `MPU6050::dmpInitialize()'
Quadcopter.cpp.o:Projects/Arduino/libraries/IMU/MPU6050_6Axis_MotionApps20.h:281: first defined here

但我不确定如何解决这个问题。我调查了其他几个类似的问题,但没有找到与此代码相关的任何答案。


.ino

#include <Wire.h>
#include <IMU.h>
IMU imuController;
void setup() {
Wire.begin();
imuController.init();
}

IMU.h

#include "MPU6050_6Axis_MotionApps20.h"

MPU6050_6Axis_MotionApps20.h

#include "I2Cdev.h"
#include "helper_3dmath.h"
#include "MPU6050.h"
#include <avr/pgmspace.h>

MPU6050.h

#include "I2Cdev.h"
#include <avr/pgmspace.h>

最佳答案

可能是因为你的头文件被包含了多次。你可以做的是像这样定义守卫:

#ifndef SOMEVAR - *make sure the file is included only once in the current scope*
#define SOMEVAR
//Symbol definitions
#endif

或者如果您的编译器支持,您可以在头文件中包含#pragma once。

关于c++ - 在两个不同的 .o 文件中对多个函数进行多重定义。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15654214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com