What does (set PATH = ...;% PATH :) = ^)%) mean in the Windows shell script, and how can I overcome the failure of this line in the context of the Qm5 nmake assembly?

In the context of the obstacle- ridden process of trying to build Qt5 (32-bit) with VS 2012 , I ran into another build error.

It:

(set PATH = C: \ Users \ daniel347x \ Desktop \ Backup \ __ Dan_Root \ qt5 \ qtbase \ lib;% PATH :) = ^)%) & C: \ Users \ daniel347x \ Desktop \ Backup__Dan_Root \ qt5 \ qtbase \ Bin \ uic.exe dialogs \ qfiledialog.ui -o ui_qfiledialog.h

NMAKE: fatal error U1077: '(set': return code '0xc0000135'

Stop.

I cannot find anything regarding the failure problem (set PATH=...;%PATH:)=^)%) (returning error code 0xc0000135 ) when doing a detailed Google / StackOverflow search.

Note that nmake has been running for a long time (more than 1 hour), happily switching directories, running intermediate .exe files, and compiling and linking code files.

I run nmake (as well as run configure ) on the command line of 32-bit Visual Studio 2012 Tools; and as far as I know, all my path variables are set correctly (they include the paths to 32-bit Perl and 32-bit Python, although I don't think it matters here).

I rebooted my computer and I launched the VS 2012 Tools command prompt with administrator privileges (in case this is a permission error), trying to start nmake , and the same error occurs.

Then I tried to figure out what the error is. At this point, I was stumped by the syntax of this command line operator, which apparently runs in a shell script:

 (set PATH=...;%PATH:)=^)%) ^^^^^^ // What do the symbols :)=^)% mean? 

I don't understand the characters :) = ^)% in the context of this script.

Can someone tell me what these characters mean in the context of the Windows shell script (which runs in the context of nmake Makefile (building 32-bit Qt5 with VS 2012))?

As an additional optional question, what can I do to overcome this error and continue building Qt5 without this error blocking progress?

+5
shell windows-7 qt qt5 makefile
Apr 11 '13 at 15:49
source share
4 answers

(set PATH=...;%PATH:)=^)%) is string substitution. For more information, see "replacing environment variables" in the output of the help set command.

the script adds the PATH variable, but during substitution it exits the right-hand sides, so the whole line is formatted correctly. For example,% PATH% may contain the substring "Program Files (x86)", which breaks the syntax set when expanding. The ^ character in front of a guy is just a shielding character for the party.

Secondly, (...) & ... is a grouping operator that allows you to write multiple commands on the same line. Why the author of the script decided to place these two commands on the same line is unknown to me, but it definitely helped overshadow the error.

Third, although NMAKE reports an error for the "set" command, a quick check showed that the return code (% ERRORLEVEL%) is set by the last group command, so there is no need to use googling 0xc0000135 for the SET and NMAKE commands.

The actual source of the error is "uic.exe", which is located in:

 C:\Users\daniel347x\Desktop\Backup__Dan_Root\qt5\qtbase\bin\uic.exe 

Regarding error 0xc0000135, this is The application failed to initialize properly . My guess is that "uic.exe" was created with an incompatible toolchain / SDK or requires some missing dlls.

PS Alternative solution: a similar problem was solved using jom instead of nmake.

+8
Apr 11 '13 at
source share

I had the same problem. I decided to add it to the PATH path to icu libraries.

+1
Jul 26 '13 at 10:13
source share

I had the same issue with compiling Qt5.3 in Win8 . The solution is to make sure that you include the location of the ICU and openSSL 32-bin binaries in the PATH variable. If you are not uic.exe do not work properly

0
Jul 29 '14 at 22:00
source share

I had the same problem, in my case I used a bad compiled ICU (compiled with VS2012) trying to use icu with VS2008, I solve it to compile ICU with VS2008 and using this compiled version of ICU in my VS2008 project.

0
Oct 28 '14 at 22:45
source share



All Articles