- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 msvc2015 通过静态链接构建 Qt5.5,但我遇到了以下错误(实际上有很多错误,但我只列出了一些,它们都是一样的) :
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(50): error C2873: 'uint_fast64_t': symbol cannot be used in a using-declaration
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(52): error C2039: 'intmax_t': is not a member of '`global namespace''
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(52): error C2873: 'intmax_t': symbol cannot be used in a using-declaration
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(53): error C2039: 'uintmax_t': is not a member of '`global namespace''
K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\INCLUDE\cstdint(53): error C2873: 'uintmax_t': symbol cannot be used in a using-declaration
NMAKE : fatal error U1077: '"K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"K:\Archivos de programa\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
要配置编译,我使用以下命令:
configure.bat -confirm-license -static -release -prefix "K:\Qt\msvc2015_static" -platform win32-msvc2015 -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -qt-sql-odbc -opensource -make libs -nomake tools -nomake examples -nomake tests
有人知道发生了什么事吗?
最佳答案
此错误已在 this thread 中讨论过在 Qt 论坛中。它链接到一个可以找到的非官方补丁 here .
为了方便以后引用,下面列出了补丁的内容:
diff --git a/src/3rdparty/clucene/src/CLucene/StdHeader.h b/src/3rdparty/clucene/src/CLucene/StdHeader.h
index 224d400..50adbf6 100644
--- a/src/3rdparty/clucene/src/CLucene/StdHeader.h
+++ b/src/3rdparty/clucene/src/CLucene/StdHeader.h
@@ -123,6 +123,9 @@ extern int _lucene_counter_break; //can set a watch on this
#endif
#if !defined(LUCENE_DISABLE_HASHING) && defined(_CL_HAVE_HASH_MAP) && defined(_CL_HAVE_HASH_SET)
+ #if (defined(_MSC_VER) && (_MSC_VER >= 1900))
+ #define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
+ #endif
//hashing is all or nothing!
#include <hash_map>
#include <hash_set>
diff --git a/src/3rdparty/clucene/src/CLucene/util/VoidMap.h b/src/3rdparty/clucene/src/CLucene/util/VoidMap.h
index 1153a01..b37465a 100644
--- a/src/3rdparty/clucene/src/CLucene/util/VoidMap.h
+++ b/src/3rdparty/clucene/src/CLucene/util/VoidMap.h
@@ -217,17 +217,28 @@ public:
//A collection that contains no duplicates
//does not guarantee that the order will remain constant over time
+// MSVC2015: https://codereview.qt-project.org/#/c/110682/3//ALL,unified
template<typename _kt, typename _vt,
typename _Compare,
typename _KeyDeletor=CL_NS(util)::Deletor::Dummy,
typename _ValueDeletor=CL_NS(util)::Deletor::Dummy>
class CLSet:public __CLMap<_kt,_vt,
+#if (defined(_MSC_VER) && (_MSC_VER >= 1900))
+ CL_NS_STD(map)<_kt,_vt>,
+#else
CL_NS_STD(map)<_kt,_vt, _Compare>,
+#endif
_KeyDeletor,_ValueDeletor>
{
+#if (defined(_MSC_VER) && (_MSC_VER >= 1900))
+ typedef typename CL_NS_STD(map)<_kt,_vt> _base;
+ typedef __CLMap<_kt, _vt, CL_NS_STD(map)<_kt,_vt>,
+ _KeyDeletor,_ValueDeletor> _this;
+#else
typedef typename CL_NS_STD(map)<_kt,_vt,_Compare> _base;
typedef __CLMap<_kt, _vt, CL_NS_STD(map)<_kt,_vt, _Compare>,
_KeyDeletor,_ValueDeletor> _this;
+#endif
public:
CLSet ( const bool deleteKey=false, const bool deleteValue=false )
{
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/ArgList.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/ArgList.h
index 8e1fdbe..79511ef 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/ArgList.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/ArgList.h
@@ -172,7 +172,10 @@ namespace JSC {
void operator delete[](void*);
void* operator new(size_t, void*);
+// FIXME: strange magic
+#if !(defined(_MSC_VER) && (_MSC_VER >= 1900))
void operator delete(void*, size_t);
+#endif
};
class ArgList {
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/StringExtras.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/StringExtras.h
index b1ec09f..11670e2 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/StringExtras.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/StringExtras.h
@@ -36,6 +36,7 @@
#if COMPILER(MSVC)
// FIXME: why a COMPILER check instead of OS? also, these should be HAVE checks
+#if (_MSC_VER < 1900)
inline int snprintf(char* buffer, size_t count, const char* format, ...)
{
int result;
@@ -45,6 +46,7 @@ inline int snprintf(char* buffer, size_t count, const char* format, ...)
va_end(args);
return result;
}
+#endif
#if COMPILER(MSVC7) || OS(WINCE)
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h
index 7ba487f..790c6a0 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h
@@ -170,8 +170,16 @@ namespace WTF {
// GCC's libstdc++ 20070724 and later supports C++ TR1 type_traits in the std namespace.
// VC10 (VS2010) and later support C++ TR1 type_traits in the std::tr1 namespace.
+ // VC14 (VS2015) and later support C++11 type_traits in the std namespace, but old TR1 names
+ // have been removed. See https://msdn.microsoft.com/en-us/library/vstudio/bb531344(v=vs.140).aspx
+ // for details.
+#if (defined(_MSC_VER) && (_MSC_VER >= 1900))
+ template<typename T> struct HasTrivialConstructor : public std::is_trivially_default_constructible<T> { };
+ template<typename T> struct HasTrivialDestructor : public std::is_trivially_destructible<T> { };
+#else
template<typename T> struct HasTrivialConstructor : public std::tr1::has_trivial_constructor<T> { };
template<typename T> struct HasTrivialDestructor : public std::tr1::has_trivial_destructor<T> { };
+#endif
#else
diff --git a/src/3rdparty/javascriptcore/WebKit.pri b/src/3rdparty/javascriptcore/WebKit.pri
index 9aaaa99..487aad6 100644
--- a/src/3rdparty/javascriptcore/WebKit.pri
+++ b/src/3rdparty/javascriptcore/WebKit.pri
@@ -22,7 +22,7 @@ isEmpty(OUTPUT_DIR) {
DEFINES += BUILDING_QT__=1
building-libs {
- win32-msvc*|win32-icc: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32
+ win32-msvc200*|win32-msvc2010*|win32-msvc2012*|win32-msvc2013*|win32-icc: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32
} else {
CONFIG(QTDIR_build) {
QT += webkit
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/ArgList.h b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/ArgList.h
index bb2d2842..627b015 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/ArgList.h
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/ArgList.h
@@ -174,7 +174,10 @@ namespace JSC {
void operator delete[](void*);
void* operator new(size_t, void*);
+// FIXME: strange magic
+#if !(defined(_MSC_VER) && (_MSC_VER >= 1900))
void operator delete(void*, size_t);
+#endif
};
class ArgList {
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StringExtras.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StringExtras.h
index 371e33b..37e0858 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StringExtras.h
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/StringExtras.h
@@ -37,6 +37,7 @@
#if COMPILER(MSVC)
// FIXME: why a COMPILER check instead of OS? also, these should be HAVE checks
+#if (_MSC_VER < 1900)
inline int snprintf(char* buffer, size_t count, const char* format, ...)
{
int result;
@@ -52,6 +53,7 @@ inline int snprintf(char* buffer, size_t count, const char* format, ...)
return result;
}
+#endif
inline double wtf_vsnprintf(char* buffer, size_t count, const char* format, va_list args)
{
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/TypeTraits.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/TypeTraits.h
index 44103cd..7b09980 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/TypeTraits.h
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/TypeTraits.h
@@ -183,8 +183,16 @@ namespace WTF {
// GCC's libstdc++ 20070724 and later supports C++ TR1 type_traits in the std namespace.
// VC10 (VS2010) and later support C++ TR1 type_traits in the std::tr1 namespace.
+ // VC14 (VS2015) and later support C++11 type_traits in the std namespace, but old TR1 names
+ // have been removed. See https://msdn.microsoft.com/en-us/library/vstudio/bb531344(v=vs.140).aspx
+ // for details.
+#if (defined(_MSC_VER) && (_MSC_VER >= 1900))
+ template<typename T> struct HasTrivialConstructor : public std::is_trivially_default_constructible<T> { };
+ template<typename T> struct HasTrivialDestructor : public std::is_trivially_destructible<T> { };
+#else
template<typename T> struct HasTrivialConstructor : public std::tr1::has_trivial_constructor<T> { };
template<typename T> struct HasTrivialDestructor : public std::tr1::has_trivial_destructor<T> { };
+#endif
#else
diff --git a/src/3rdparty/webkit/Source/WebKit.pri b/src/3rdparty/webkit/Source/WebKit.pri
index 01f88a4..b607444 100644
--- a/src/3rdparty/webkit/Source/WebKit.pri
+++ b/src/3rdparty/webkit/Source/WebKit.pri
@@ -38,7 +38,7 @@ DEPENDPATH += $$OUT_PWD
DEFINES += BUILDING_QT__=1
building-libs {
- win32-msvc*|win32-icc: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32
+ win32-msvc200*|win32-msvc2010*|win32-msvc2012*|win32-msvc2013*|win32-icc: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32
} else {
CONFIG(QTDIR_build) {
QT += webkit
关于c++ - 构建 Qt - NMAKE : fatal error U1077: 'cd' : return code '0x2' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33126119/
我正在做这样的事情: all: @SET /p filecontent= type somefile.txt PASSWORD=secret c:>type makefile !INCLUDE
我的构建过程需要一个小的 nmake makefile。文件类型为 TXT 和 PDF。因此,我在我的 makfile 中添加了一个推理规则。但是 nmake 完全忽略了它。怎么了? Number=1
我正在将 GNU Make makefile 转换为 Microsoft Visual Studio Makefile。我有三个疑问: 1) 如何替换字符串。例如在包含以下内容的文件夹中: names
我正在尝试编译一些第三方代码并遇到了一些奇怪的 NMAKE 行为。 Makefile 中的行是 cholmod_aat.o: ../Core/cholmod_aat.c $(C) -c
我正在尝试编译一些第三方代码并遇到了一些奇怪的 NMAKE 行为。 Makefile 中的行是 cholmod_aat.o: ../Core/cholmod_aat.c $(C) -c
我有一个包含顶级 makefile 和三个子文件夹的项目,每个子文件夹中都有一个 makefile。 在普通的 makefiles (gnu make) 中我可以这样做: # Just for me
如果我这样做,我认为在 nmake 中: example : set value=77 echo %%value%% 结果将在控制台上显示 77。 有没有办法调用 .
当我在命令提示符中键入 nmake 命令时,出现此错误: 'nmake' is not recognized as an internal or external command operable p
我正在尝试使用 cmake 和 CLion 构建一个 C++ 项目,但我遇到了一些我无法理解的错误: "C:\Program Files\JetBrains\CLion 2019.2.5\bin\cm
我在VS 2012控制台中使用nmake来编译GDAL,我想知道哪个命令可以帮助我删除上一次由nmake命令生成的所有文件。 c:\gdal>nmake clean Microsoft (R) Pro
我看到了两个与我的问题相似的话题,但都没有找到对我有帮助的答案。 我得到了一台运行 Windows 7 Enterprise SP1 64 位的新笔记本电脑,我在上面安装了 Active Perl 5
我注意到了 nmake.exe将其推理规则搜索限制为一个丢失的文件。我发现网上没有提到这个问题。我错过了什么吗? $ cat 生成文件 .后缀:.a .b .d .e 全部:abc.e .a.b: 复
实用程序:NMake 平台:Windows 7 我有以下 Makefile FILE = $(shell) *.c FILE += $(shell) *.cpp exec: @echo $(F
我有一个 Nmake 的 Makefile,其中包含宏中的文件列表: MYSRCFILES1=myfolder\file1.svg myfolder\file2.svg ... myfolder\fi
我想知道当当前目录位于调试文件夹中时,是否可以从命令提示符运行 nmake。我发现更改到以前的文件夹只是为了运行 nmake 然后返回调试文件夹以运行可执行文件是很乏味的。 debug release
您好,我决定尝试学习如何通过命令行和 makefile 构建程序,而不是依赖 Visual Studio 来为我构建程序。在熟悉了编译成 .obj 文件和链接的过程后,我转向了 NMake。我编写了一
我刚买了一台新的四核计算机,发现 nmake 只使用了一个进程。 我曾经使用带有开关 -j4 的 make 来启动 4 个进程。什么是 nmmake 等价物? [编辑]根据以下信息,我已经能够将命令添
我正在使用 NMake 制作联编文件。我有一些实用程序可以运行以将一个文件转换为 CPP 文件。该实用程序需要在 session 期间设置特定的 Windows 环境变量。我可以在 Makefile
大家好! 我正在尝试编译一些外部库作为编译 MESHLAB(用于 3d 网格处理的工具)源代码的先决条件。 首先,我使用“qmake”命令从我的项目文件 (external.pro) 生成 Makef
这个问题在这里已经有了答案: Using nmake with wildcards in the makefile (2 个答案) 关闭 2 年前。 我有 UNIX 背景,所以我习惯于在 GNU/M
我是一名优秀的程序员,十分优秀!