在预处理程序指令中包含静态库

888*_*888 6 c++ static-libraries c-preprocessor

我正在使用Visual Studio 2012.

我曾多次使用预处理程序指令

#ifdef something 
      #include<some_header.h>
#else
      #include<other_header.h>
#endif
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以以类似的方式链接静态库:

#ifdef something 
      // use some_library.lib
#else
      // use other_library.lib
#endif
Run Code Online (Sandbox Code Playgroud)

这个问题来自我上一个问题的主题:我有两个静态库lib1.lib,lib2.lib(不是它们的代码)没有名称空间,具有相同的函数原型,但具有不同的实现.

Ton*_*ion 8

如果您使用MSVC,您可以这样做

#ifdef something 
      #pragma comment(lib,"xxx.lib")
#else
      #pragma comment(lib,"zzz.lib")
#endif
Run Code Online (Sandbox Code Playgroud)

在海湾合作委员会,你不能这样做.