gpt4 book ai didi

c++ - boost 版Qt qglobal.h

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:42:27 26 4
gpt4 key购买 nike

当使用 Qt Creator 创建库时,它会自动生成一个全局 header ,其中定义了导出符号宏。这是一个示例代码:

#ifndef LIB_GLOBAL_HPP
#define LIB_GLOBAL_HPP

#include <QtCore/qglobal.h>

#if defined(LIB)
# define LIB_SHARED_EXPORT Q_DECL_EXPORT
#else
# define LIB_SHARED_EXPORT Q_DECL_IMPORT
#endif

#endif // LIB_GLOBAL_HPP

是否可以仅使用 Boost 库实现相同的平台独立性?我想在不依赖 Qt 库的情况下使用 Qt Creator。

最佳答案

虽然您的代码片段似乎并不完整,因为对于一个稳定的库来说,这还不够定义,但这似乎也可以通过 boost 来实现,几乎可以应用一对一的映射,即只是不同的名称:

...
#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FOO_DYN_LINK)
# if defined(BOOST_FOO_SOURCE)
# define BOOST_FOO_DECL BOOST_SYMBOL_EXPORT
# else
# define BOOST_FOO_DECL BOOST_SYMBOL_IMPORT
# endif
#else
# define BOOST_FOO_DECL
#endif
...

请注意,它还包含我在上面提到的附加逻辑;否则,它就不是真正完整的跨平台解决方案。更多细节请引用boost文档here .

关于c++ - boost 版Qt qglobal.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26491498/

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