问题
When I right click Run code, and have run in terminal on in my user settings I get these errors.
At line:1 char:63 + ... "c:\Users\Josh\Documents\Programming\Learning to Program\" && g++ Exe ... + ~~ The token '&&' is not a valid statement separator in this version. At line:1 char:99 + ... \Learning to Program\" && g++ Exercise36.cpp -o Exercise36 && "c:\Use ... + ~~ The token '&&' is not a valid statement separator in this version. At line:1 char:102 + ... ercise36 && "c:\Users\Josh\Documents\Programming\Learning to Program\ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Expressions are only allowed as the first element of a pipeline. At line:1 char:160 + ... "c:\Users\Josh\Documents\Programming\Learning to Program\"Exercise36 + ~~~~~~~~~~ Unexpected token 'Exercise36' in expression or statement. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : InvalidEndOfLine
I have been compiling fine up until today, and I did some googling and started typing my own commands into the terminal instead of just running code.
I started replacing the &&
with -and
and get a different problem. This is what the command looks like now.
"c:\Users\Josh\Documents\Programming\Learning to Program\" -and g++ Exercise36.cpp -o Exercise36 -and "c:\Users\Josh\Documents\Programming\Learning to Program\"Exercise36
This is the error I get.
Set-Location : Parameter cannot be processed because the parameter name 'o' is ambiguous. Possible matches include: -OutVariable -OutBuffer. At line:1 char:87 + ... \Programming\Learning to Program\" -and g++ Exercise36.cpp -o Exercis ... + ~~ + CategoryInfo : InvalidArgument: (:) [Set-Location], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameter,Microsoft.PowerShell.Commands.SetLocationCommand
I am using the GNU open source compiler, this is the first issue I have had with compiling since I realized you have to save before you compile. I am running a simple string that changes all the characters to X from a string that is read from terminal from C++ Primer program. Any help would be appreciated.
回答1:
I had the same problem, I believe it is caused by the new VS code version 1.35. I tried downgrading to 1.34 and compiling and running c++ worked again.
The old version seems to run the code with a different command:
"cd $dir ; if ($?) { g++ $fileName -o $fileNameWithoutExt } ; if ($?) { .\\$fileNameWithoutExt}"
in your case it would look like:
cd "c:\Users\Josh\Documents\Programming\Learning to Program\" ; if ($?) { g++ Exercise36.cpp -o Exercise36 } ; if ($?) { .\Exercise36}
For me using this comand compiling and running works in the new VS version aswell.
回答2:
Only a guess what you might need:
# change to the directory, where your source code resides
Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\"
# Invoke compiler via the call operator = &
& g++ Exercise36.cpp -o Exercise36
# change to the directory, where your binary resides
Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\Exercise36"
You can execute these three commands if you divide them with a ;
:
Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\"; & g++ Exercise36.cpp -o Exercise36; Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\Exercise36"
If you want to check the outcome of a command you can use the $?
variable.
回答3:
Following the steps from this article, I came across this issue when tried to run the following command inside the terminal on VS code version 1.39.2
npm run build && npm run start-sw
Error:
At line:1 char:15 + npm run build && npm run start-sw + ~~ The token '&&' is not a valid statement separator in this version. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : InvalidEndOfLine
resolution was to run the same command in the Node JS command window;
Adding this here since it was the top post for this error on stackOverflow and may help someone in the future
回答4:
I had the same problem
PS:
C:\typescript_practice> tsc testclass.ts && node testclass.js
At line:1 char:18 tsc testclass.ts && node testclass.js ~~ The token '&&' is not a valid statement separator in this version. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : InvalidEndOfLine
PS C:\typescript_practice> tsc testclass.ts | node testclass.js Sangamesh Vastrad
worked with below
use |" instead of && in latest for node
来源:https://stackoverflow.com/questions/56488308/having-trouble-compiling-in-vs-code-terminal-which-is-windows-powershell