gpt4 book ai didi

c++ - 静态变量 - undefined reference

转载 作者:行者123 更新时间:2023-11-30 01:52:29 24 4
gpt4 key购买 nike

<分区>

今天我遇到了静态变量/函数的喜好问题。首先让我向您展示代码:

跟踪.h

class Trace : public QObject
{
Q_OBJECT

public:
explicit Trace(QObject *parent = 0);
static void setLogFilePath(QString path)
{
logFilePath = path;
}
QString getLogFilePath();

private:
static QString logFilePath;
};

#endif // TRACE_H

跟踪.cpp

// includes.. constructors..

QString Trace::getLogFilePath()
{
return logFilePath;
}

在Linux上,我可以毫无问题地编译这个类生成动态库。在 Windows 上,我不能,我有一个对 logFilePath 的 undefined reference 。

我知道使用 TEMPLATE = app 我必须在 main 中定义我的静态变量,但是对于一个库我不这么认为但我不确定。

我在windows上看到,如果像这样把实现放在头文件中:

跟踪.h

QString Trace::getLogFilePath()
{
return logFilePath;
}

没有点赞错误。

1) 为什么 Linux 和 Windows 之间会有这样的区别? (相同的 Qt 版本)。

2) 在动态库中使用静态变量是好事还是坏事? (我可以用一个文件来克服这个问题,也许更好)。

提前致谢。

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