0

在图书馆中,我在标题中有以下内容:

// button.hpp

class ExtraButtons
{
public:
    static inline void show() { setShown(true); }
    static inline void hide() { setShown(false); }
    static void setShown(bool shown);
};

以及源文件中的以下内容:

#include "button.hpp"

void ExtraButtons::setShown(bool shown)
{
}

该库编译良好。但是,当我使用库并包含时,我从和中的调用中button.hpp收到此错误:setShownshow()hide()

undefined reference to `ExtraButtons::setShown(bool)'

我可以通过从源文件中删除内联show()hide()在源文件中定义它们来解决问题,就像正常一样,或者也可以通过setShown内联来解决。为什么会这样?这些是唯一的解决方案吗?

4

1 回答 1

1

看起来您没有将库二进制文件链接到您的项目中,或者您的实际定义setShowninline void ExtraButtons::setShown(bool shown)(请注意,它在源文件中被意外标记为内联)。

于 2013-09-04T19:02:34.310 回答