定义特定文件

时间:2012-12-05 10:04:49

标签: c++ c-preprocessor compiler-options

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

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

2 个答案:

答案 0 :(得分:1)

如果您想影响标题,可以在include:

之前添加该定义
#define SOMEDEFINE SOMEVALUE
#include log.h
// May want to remove or change our define here
#undef SOMEDEFINE

这假设您的意思是包含log.h,因为您不希望包含其他文件中的cpp。单独的.h和.cpp文件的想法是.h是所有编译单元看到的接口,而cpp是代码本身,它应该只编译一次,并且不应该根据你是哪个编译单元而不同提到它。

答案 1 :(得分:0)

对于我所知道的所有C ++编译器,您可以在命令行上使用#define个符号。通常,这是使用-D option完成的。