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

标签 c++ c visual-studio conditional-compilation

我知道我可以在 *.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,在project properties,C++,Preprocessor,Preprocessor Definitions,添加$(MY_VERSION)。这个程序:

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

打印“OK”。退出 Visual Studio,将 MY_VERSION 值更改为另一个值或将其删除。启动VS,重建程序。现在它打印“??”。

请注意,更改变量值后需要重新启动 Visual Studio(因为环境变量不会动态刷新),并重新生成所有。

关于c++ - 我可以定义一个环境变量并在条件编译中使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25184148/

相关文章:

visual-studio - Visual Studio 2005 : Please stop opening my CS files in "Design Mode"!

c++ - 正确使用加载/存储

c++ - C++的简单多线程混淆

c++ - Qt:如何通过外部程序打开文件, "open with..."对话框

c++ - 抄送 : language CC not recognized

c - 设置语言环境时 Windows C 运行时 toupper 变慢

vb.net - 为什么 Visual Studio 在设计器打开时修改 "Windows Form Designer generated code"?

php - 除了代码折叠之外,如何管理单个文件中的长代码?

C 指针而不是 union

c - 测试损坏的列表