带有预处理器的 C++ 条件链接

标签 c++ visual-c++ hyperlink preprocessor

我有一个 MSVC C++ 项目,我通过在项目属性的 C++/预处理器部分中传递指定的预处理器定义来有条件地编译部分源代码。

我还想做的是根据预处理器定义有条件地链接库,如何实现这一点?

例如,在我的项目中,如果定义了 CLSOPENLDV,我想排除:

nodetalk32_vcpp.obj

并包括:

ldv32.lib

当它没有定义时,我想做相反的事情。

最佳答案

您可能需要这个:

#ifdef SOME_MACRO
#pragma comment( lib, "ldv32" )
#endif

这是 Microsoft 特有的,它可能不适用于 gcc、clang 或其他编译器。

对于排除nodetalk32_vcpp.obj,我想到的唯一可以做的就是:

#ifndef SOME_MACRO
  // content of nodetalk32_vcpp.cpp
#endif

关于带有预处理器的 C++ 条件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51357767/

相关文章:

javascript - 转到单击事件 jquery 上的 anchor 链接

wpf - 在 MVVM 模式中使用超链接的单元格模板

ios - 通用链接。无与伦比的性格

c++ - 为大型项目禁用 PDB

c++ - 类面向对象错误中的常量指针

c++ - 数组中的错误功能排序

c++ - double 值以整数形式打印

c++ - 如何在 main() 函数之外制作形状

c++ - self 背后的理论和用法是什么,包括 C 和 C++ 中的源文件?

c++ - 检测堆损坏