gpt4 book ai didi

c++ - 编译检查是否编译为静态库

转载 作者:可可西里 更新时间:2023-11-01 18:36:04 24 4
gpt4 key购买 nike

如果项目正在编译为库,我如何在编译时检查? (静态库)

我可以检查某种静态断言或其他标志吗?

我不能自己添加预处理器变量,因为它是一个实用程序,将在公司的其他项目中使用。所以我想知道是否有一些预处理器标志是默认发送的。

我正在使用 Visual Studio 2010

最佳答案

预定义宏列表中没有这样的东西 - http://msdn.microsoft.com/en-us/library/b0084kay%28v=vs.100%29.aspx .

但默认情况下,如果它是“静态库”项目,MSVC 会将 _LIB 添加到预处理器定义列表。
(它还为 DLL 添加了 _USRDLL)

编辑:在 Visual Studio 2017 中,DLL 的定义是 _WINDLL(来自 IDE 应用的“Windows 动态链接库”属性表)。 _LIB 定义不再可用。

另一种解决方案是使用以下预处理器定义向项目添加属性表( checkin 您的版本控制存储库):_$(OutputType);%(PreprocessorDefinitions)

$(OutputType) 将解析为 DLL 的“library”和静态库的“staticlibrary”,从而产生 _library_staticlibrary 定义分别(或 _exe 用于应用程序)。

%(PreprocessorDefinitions) 将从之前的属性表中堆叠定义。确保它也包含在项目属性中!

要添加属性表,请导航至查看 |其他窗口 | Visual Studio 中的属性管理器

关于c++ - 编译检查是否编译为静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com