我想有条件地导出要在 Visual Studio 2019 中的 Google 测试项目中使用的符号。我正在尝试设置一个名为 UNIT_TESTS 的预处理器定义,但前提是单元测试项目构建引用的源项目。
符号可以正确导出,头文件中没有条件
#ifdef UNIT_TESTS
,但预处理器定义不会传播到源项目。有办法做到这一点吗?
#ifndef TEST_H
#define TEST_H
#ifdef UNIT_TESTS
#ifdef INTERFACE_EXPORTS
#define INTERFACE_API __declspec(dllexport)
#else
#define INTERFACE_API __declspec(dllimport)
#pragma comment(lib, "Interface.lib")
#endif
INTERFACE_API void func();
#endif // #ifdef UNIT_TESTS
#endif // #ifndef TEST_H
预处理器定义不会在项目之间传播。您需要将其添加到单元测试项目的预处理器定义设置中。
或者在头文件之前定义宏(预编译头文件在第一行)
在测试.cpp中
#include "pch.h"
//
#define UNIT_TESTS
#include"...lib header.h"