我有一个 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/