【发布时间】:2018-07-16 17:26:03
【问题描述】:
我有一个 MSVC C++ 项目,我通过在项目属性的 C++/预处理器部分中传递指定的预处理器定义来有条件地编译部分源代码。
我还想做的是根据预处理器定义有条件地链接库,我该如何实现?
例如在我的项目中,如果定义了 CLSOPENLDV,我想排除:
nodetalk32_vcpp.obj
并包括:
ldv32.lib
当它没有被定义时,我想做相反的事情。
【问题讨论】:
-
您可以使用语句
ifdef(在头文件中)或ifeq(在Makefile中)来决定要包含或链接哪些库:-) -
@Paradowski MSVC C++ 项目不太可能由 makefile 驱动...
-
@SPlatten 不太:
#pragma comment( lib, "mylib" )也影响链接器。此编译指示是 Microsoft 特定的c -
@SPlatten 第一个问题是:你为什么要这么做?即使将库传递给链接器,链接器也应该发现不需要库的符号并忽略它们。
标签: c++ visual-c++ hyperlink preprocessor