本人在Logging类的头文件里定义了如下宏
#define LOG_INFO(msg) ::solo::base::Logging::writeToLogging(“#msg”, LOG_INFO)
这里的writeToLogging是类内的一个静态成员函数,供日志输入。
下面是主函数
#include <solo/base/Logging.h>
int main()
{
LOG_INFO(“ADA”);
}
编译提示 本人这个LOG_INFO未声明。
但是本人改掉LOG_INFO 的定义,随便改成一个很简单的定义 例如 (msg > 1 ? 1 : msg) 编译器又不会提示有错误
本人在想是不是原因是后面宏定义的是类静态成员函数的问题。
希望的到解答, 不胜感激。
#define LOG_INFO(msg) ::solo::base::Logging::writeToLogging(“#msg”, LOG_INFO)
这里的writeToLogging是类内的一个静态成员函数,供日志输入。
下面是主函数
#include <solo/base/Logging.h>
int main()
{
LOG_INFO(“ADA”);
}
编译提示 本人这个LOG_INFO未声明。
但是本人改掉LOG_INFO 的定义,随便改成一个很简单的定义 例如 (msg > 1 ? 1 : msg) 编译器又不会提示有错误
本人在想是不是原因是后面宏定义的是类静态成员函数的问题。
希望的到解答, 不胜感激。
解决方案
5
宏展开后是
::solo::base::Logging::writeToLogging("#msg", LOG_INFO);
这里的LOG_INFO是什么?
5
类的私有 enum 需要加上 namespace and classname
5
VS /P
G++ -E
10
LOG_INFO在对应的类里面出现,应该没问题
类外的话,得加上 类作用域 而且还得是public的.