7

我正在使用 Visual Studio 2012。

我多次使用预处理器指令,例如

#ifdef something 
      #include<some_header.h>
#else
      #include<other_header.h>
#endif

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

#ifdef something 
      // use some_library.lib
#else
      // use other_library.lib
#endif

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

4

1 回答 1

9

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

#ifdef something 
      #pragma comment(lib,"xxx.lib")
#else
      #pragma comment(lib,"zzz.lib")
#endif

在 GCC 中你不能这样做。

于 2013-03-19T15:07:21.883 回答