在引用的项目中设置预处理器定义

问题描述 投票:0回答:1

我想有条件地导出要在 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
c++ c visual-studio linker visual-studio-2019
1个回答
0
投票

预处理器定义不会在项目之间传播。您需要将其添加到单元测试项目的预处理器定义设置中。

或者在头文件之前定义宏(预编译头文件在第一行)

在测试.cpp中

#include "pch.h"
//
#define UNIT_TESTS
#include"...lib header.h"
© www.soinside.com 2019 - 2024. All rights reserved.