[其他ST产品] STM32CubeIDE 引用项目外类源文件时编译报错,且类的构造函数未被调用

[复制链接]
251|0
cutfall 发表于 2025-11-8 12:03 | 显示全部楼层 |阅读模式

我在 STM32CubeIDE 项目外部的一个文件夹中创建了一个简单的类:
class AT24C256Driver
{
public:
AT24C256Driver();
float get_m_foo();
private:
float m_foo;
};
已将该文件夹添加到项目的 “C/C++ general- Paths and Symbols” 属性中。AT24C256Driver.h 和 AT24C256Driver.cpp 这两个文件能正常编译,无报错。之后我在 main.cpp 中包含了该头文件(#include "AT24C256Driver.h"),此时编译都能正常通过
我曾在这两个源文件中故意加入语法错误,编译器会正常报错,说明文件已被编译器处理。
但当创建该类的实例时,构造函数并未被调用,调试器会跳过创建对象的那一行代码:
/* USER CODE BEGIN SysInit */
AT24C256Driver mAT24C256Driver();
/* USER CODE END SysInit */
当调用类的成员函数时,编译器会报错:
"request for member 'get_m_foo' in 'mAT24C256Driver', which is of non-class type 'AT24C256Driver()'".
auto foo = mAT24C256Driver.get_m_foo();
这到底哪里出问题了?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部