我可以定义一个环境变量并在条件编译中使用它吗?

我知道我可以在* .h文件中执行此操作:

#ifdef _DEBUG #pragma comment(lib, "libtiffd.lib") #else #pragma comment(lib, "libtiff.lib") #endif 

但我想要一种方法,我可以做这样的事情:

 #ifdef V2.4.6 #ifdef _DEBUG #pragma comment(lib, "opencv_calib3d246d.lib") #else #pragma comment(lib, "opencv_calib3d246.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "opencv_calib3d249d.lib") #else #pragma comment(lib, "opencv_calib3d249.lib") #endif #endif 

和V2.4.6是一个环境变量。 我可以这样做吗?

我不想在Visual Studio或代码中定义V2.4.6,因为它在不同的系统上会有所不同。

我的测试:创建环境变量MY_VERSION = V2_4_6。 启动VS,在项目属性,C ++,预处理器,预处理器定义中添加$(MY_VERSION) 。 这个程序:

 #ifdef V2_4_6 cout << "OK" << endl; #else cout << "??" << endl; #endif 

打印“确定”。 退出Visual Studio,将MY_VERSION值更改为其他值或将其删除。 启动VS,重建程序。 现在打印“??”。

请注意,在更改变量值之后,必须重新启动Visual Studio(因为环境变量不会动态刷新),并使Rebuild All。