假函数框架 "one or more multiply defined symbold found"

Fake Function Framework "one or more multiply defined symbold found"

我正在使用 Fake Function Framework 在 .c 文件中伪造一个函数并在我的 .cpp 单元测试文件中测试它。

#include "..\fff.h"
extern "C"
{
    #include "ioDigitalInput.h"
}


DEFINE_FFF_GLOBALS;

FAKE_VALUE_FUNC(bool, ioFunc);

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTestfff
{
    TEST_CLASS(UnitTestfff)
    {
    public:
        
        TEST_METHOD(TestMethod1)
        {

        }
    };
}

函数 ioFunc returns 一个 bool 并以 void 作为输入。

当我尝试构建代码时出现以下错误: “找到一个或多个多重定义的符号”和 “ioFunc 已在 ioDigitalInput.obj”中定义

我做错了什么?

FAKE_VALUE_FUNC(bool, ioFunc);

在您的 .cpp 单元测试文件中 定义了(假)函数 ioFunc。目标文件 ioDigitalInput.obj 还包含一个(可能不是伪造的)ioFunc 的定义,你尝试用编译测试 link 这个对象,所以 ioFunc 多重定义的 。要么不要尝试 link ioDigitalInput.obj,或者用 fff README.

中描述的弱属性标记假货