//qt-win-opensource-src-4.4.0\src\corelib\global\qglobal.h
。。。。。。
#define QT_VERSION 0x040400
/*
can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0))
*/
#define QT_VERSION_CHECK(major, minor, patch) ((major < <16)|(minor < <8)|(patch))
#define QT_PACKAGEDATE_STR "2008-04-28"
#define QT_PACKAGE_TAG "g62dcb32f1893c32adcb3f1cb40656449b45d8d56"
#if !defined(QT_BUILD_MOC)
#include <QtCore/qconfig.h>
#endif
#ifdef __cplusplus
#ifndef QT_NAMESPACE /* user namespace */ // 这句该怎么用?
# define QT_PREPEND_NAMESPACE(name) ::name
# define QT_USE_NAMESPACE
# define QT_BEGIN_NAMESPACE
# define QT_END_NAMESPACE
# define QT_BEGIN_INCLUDE_NAMESPACE
# define QT_END_INCLUDE_NAMESPACE
# define QT_BEGIN_MOC_NAMESPACE
# define QT_END_MOC_NAMESPACE
# define QT_FORWARD_DECLARE_CLASS(name) class name;
# define QT_MANGLE_NAMESPACE(name) name
#else /* user namespace */
# define QT_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name
# define QT_USE_NAMESPACE using namespace ::QT_NAMESPACE;
# define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
# define QT_END_NAMESPACE }
# define QT_BEGIN_INCLUDE_NAMESPACE }
# define QT_END_INCLUDE_NAMESPACE namespace QT_NAMESPACE {
# define QT_BEGIN_MOC_NAMESPACE QT_USE_NAMESPACE
# define QT_END_MOC_NAMESPACE
# define QT_FORWARD_DECLARE_CLASS(name) \
QT_BEGIN_NAMESPACE class name; QT_END_NAMESPACE \
using QT_PREPEND_NAMESPACE(name);
# define QT_MANGLE_NAMESPACE0(x) x
# define QT_MANGLE_NAMESPACE1(a, b) a##_##b
# define QT_MANGLE_NAMESPACE2(a, b) QT_MANGLE_NAMESPACE1(a,b)
# define QT_MANGLE_NAMESPACE(name) QT_MANGLE_NAMESPACE2( \
QT_MANGLE_NAMESPACE0(name), QT_MANGLE_NAMESPACE0(QT_NAMESPACE))
namespace QT_NAMESPACE {}
# ifndef QT_BOOTSTRAPPED
# ifndef QT_NO_USING_NAMESPACE
/*
This expands to a "using QT_NAMESPACE" also in _header files_.
It is the only way the feature can be used without too much
pain, but if people _really_ do not want it they can add
DEFINES += QT_NO_USING_NAMESPACE to theur .pro files.
*/
QT_USE_NAMESPACE
# endif
# endif
#endif /* user namespace */
#else /* __cplusplus */
# define QT_BEGIN_NAMESPACE
# define QT_END_NAMESPACE
# define QT_USE_NAMESPACE
# define QT_BEGIN_INCLUDE_NAMESPACE
# define QT_END_INCLUDE_NAMESPACE
#endif /* __cplusplus */
。。。。
因为我没有预定义QT_NAMESPACE,所以与其它库出现了名字冲突(其他的库都已经有了明确的名字空间)。
问题是该在哪里定义QT_NAMESPACE这个宏,来解决冲突问题?
奇趣有说 在编译安装的时候定义这个宏吗?那商业版的是如何解决的?
BTW:我使用的是VC++.