C++ 为特定文件定义

C++ 为特定文件定义,c++,c-preprocessor,compiler-options,C++,C Preprocessor,Compiler Options,你能帮我解决以下问题吗? 我有一个文件log.cpp,其中包含在项目中的不同文件中。我需要在其中一个文件中声明define,它必须影响log.cpp,而不需要在log.cpp或log.h中进行实际更改。 我该怎么做? 不接受带有预编译标头的解决方案 还有一个问题,如何定义静态函数? 我的意思是,如果在我的代码中调用了CClass::Func,我如何定义它以重定向到其他内容?如果要影响标题,可以将该定义放在include之前: #define SOMEDEFINE SOMEVALUE #inclu

你能帮我解决以下问题吗? 我有一个文件log.cpp,其中包含在项目中的不同文件中。我需要在其中一个文件中声明define,它必须影响log.cpp,而不需要在log.cpp或log.h中进行实际更改。 我该怎么做? 不接受带有预编译标头的解决方案

还有一个问题,如何定义静态函数?
我的意思是,如果在我的代码中调用了
CClass::Func
,我如何定义它以重定向到其他内容?

如果要影响标题,可以将该定义放在include之前:

#define SOMEDEFINE SOMEVALUE
#include log.h
// May want to remove or change our define here
#undef SOMEDEFINE

这是假设您的意思是包含log.h,因为您不希望包含来自其他文件的cpp。具有单独的.h和.cp文件的思想是.h是所有编译单元所看到的接口,而CPP是代码本身,它只应该编译一次,并且不应该根据您引用的C++编译单元而有所不同。您可以在命令行上定义符号。通常使用。

完成此操作。您是否实际包含.cpp?这不是很好的做法…我只包括标题,它只是机械错误:)所以你能帮我解决这个问题吗?