Building Qt - NMAKE: fatal error U1077: 'cd': return code '0x2'

I am trying to build Qt5.5 with static link using msvc2015, but I get the following errors (actually there are a lot of them, but I list only a few, they are all the same)

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. 

To configure compilation, I use the following command:

 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 

Does anyone know what is going on?

+5
source share
3 answers

This exact error was discussed in this thread on the Qt forum. It refers to an unofficial patch that can be found here .

In the future, a link to the contents of the patch is given below:

 diff --git a/src/3rdparty/clucene/src/CLucene/StdHeader.hb/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.hb/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.hb/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.hb/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.hb/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 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.hb/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.hb/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.hb/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 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 
+2
source

This is because you probably have a very long way to put your source code. Therefore, try to shorten the path for the location of the codes. For example, enter them in the short name of the folder in the root directory of the drive.

Also see: fooobar.com/questions/969763 / ...

0
source

@Bowdzone thanks. this patch worked like a charm for building qt4.8.7

I also needed to add "$ (QMAKESPEC)" == "win32-msvc2015" after the msvc2013 option in C: \ repo \ qt \ 4.8.7 \ qmake \ Makefile.win32 (line 27) to get the command configuration to work - as noted in the qt build for msvc2015 directions

I needed to build qt4.8.7 as a dependency for the OSS 3dslicer package.

ps I do not have enough points to add a comment. This is a check that the patch worked for me.

0
source

Source: https://habr.com/ru/post/1233700/


All Articles