【发布时间】:2012-12-27 10:14:32
【问题描述】:
如果项目正在编译为 lib,我如何在编译时检查? (静态库)
我可以检查某种静态断言或其他标志吗?
我自己无法添加预处理器变量,因为它是一个将用于公司其他项目的实用程序。所以我想知道是否有一些默认情况下正在发送的预处理器标志或其他东西。
我正在使用 Visual Studio 2010
【问题讨论】:
-
取决于工具和编译器。您想要 Visual C++ 或 g++ 的答案吗?您现在如何编译您的项目?
-
与什么比较?到动态库还是到可执行文件?后者不起作用(可靠地,跨平台),因为这是在链接时决定的。前者可能是可能的。自己添加一个预处理器变量可能会更好。
-
在命令行中添加
-DSTATIC_LIBRARY,并使用#ifdef进行测试? -
我使用的是 Visual Studio 2010。我自己无法添加预处理器变量,因为它是一个实用程序,将在公司的其他项目中使用。
-
如果依赖于它,你的代码会很糟糕。
标签: c++ visual-studio-2010 compilation static-libraries