2014-10-06 3 views
2

Windows PowerShell에서 "gcc -std = C99 -pedantic -Wall"과 동일한 "gcc99"별칭을 설정하려고합니다. 아이디어는 GCC가 c99 모드에서 실행 중인지 확인하기 위해 더 적은 키 스트로크를 사용하는 것입니다. (필자는 Windows PowerShell을에 다음 게시물에 지침을 적용하기 위해 최선을 시도했다 : Setting std=c99 flag in GCC가) Windows PowerShell에서 GCC의 별칭 설정

나는 그런 별칭 (아래 전시 1)을 설정 한 후 컴파일하려고

, 나는 오류가 발생합니다. 참고로 컴파일을 위해 확장 명령을 사용하면이 오류가 발생하지 않습니다 (아래 2 번 전시). 테스트로서 gcc99를 "gcc"(추가 값 없음)의 별칭으로 설정하려고 시도했지만 제대로 작동했습니다 (아래 3 번 전시). 코드에서 아직 다루지 않은 많은 경고를 무시하십시오.

제안 사항이 있으십니까?

(내 캡션이 아래 이미지에 표시되지 않는 이유는 확실하지 않습니다. 예를 들어 첫 번째 이미지의 경우 자동으로 만들어진 형식을 사용하고 있습니다 : "Caption"다음에 "1 : 다음 줄에 링크 ".)

Exhibit 1: Error when trying to compile via a "gcc99" alias which is set to "gcc -std=c99 -pedantic -Wall"

Exhibit 2: It works fine when compile directly via "gcc -std=c99 -pedantic -Wall" PowerShell의

Exhibit 3: It works fine when compiling via a "gcc99" alias which is set to "gcc", which makes me think that I'm incorrectly setting the additional values in Exhibit 1

+3

인수를 사용하여 명령을 실행하는 별칭을 만들 수 없으므로 함수를 만들어야합니다. http://stackoverflow.com/questions/4166370/how-can-i-write-a-powershell-alias-with-arguments-in-the-middle – nos

+0

가능한 복제본 [인수를 사용하여 PowerShell 별칭을 작성하려면 어떻게해야합니까? 중간에?] (https://stackoverflow.com/questions/4166370/how-can-i-write-a-powershell-alias-with-arguments-in-the-middle) –

답변

6

별칭은 유닉스의 별칭 다르다 껍질. 매개 변수를 포함하지 않고 cmdlet, 함수 또는 프로그램의 별칭 만 지정할 수 있습니다. Get-Help Set-Alias에서 인용 :

$CARGS = '-std=C99', '-pedantic', '-Wall' 
gcc $CARGS -more arguments here ... 

로 : 당신이 인수의 기본 세트와 외부 프로그램을 실행하기 위해 할 수있는 일

NAME 
    Set-Alias 

SYNOPSIS 
    Creates or changes an alias (alternate name) for a cmdlet or other command 
    element in the current Windows PowerShell session. 


SYNTAX 
    Set-Alias [-Name] [-Value] [-Description ] [-Force] 
    [-Option ] [-PassThru] [-Scope ] [-Confirm] 
    [-WhatIf] [] 


DESCRIPTION 
    The Set-Alias cmdlet creates or changes an alias (alternate name) for a cmdlet or for a command element, such as a function, a script, a file, or other executable. You can also use Set-Alias to reassign a current alias 
    to a new command, or to change any of the properties of an alias, such as 
    its description. Unless you add the alias to the Windows PowerShell profile, 
    the changes to an alias are lost when you exit the session or close Windows 
    PowerShell.

배열로 설정하는 것이 기본을 정의하고이 같은 프로그램을 실행하는 것입니다 @ChrisN 아래의 의견에서 변수 $CARGS을 모든 PowerShell 인스턴스에 미리 정의하려면 custom PowerShell profile (예 : 사용자의 경우 %UserProfile%\Documents\Windows­PowerShell\profile.ps1)에 추가 할 수 있습니다.

+0

고마워! 새 Powershell 윈도우를 열 때마다 배열 (/ 함수/가져온 모듈)을 다시로드해야하는지 알고 있습니까? – iceman

+1

PowerShell 프로필에 추가 할 수 있지만 시스템, 사용자 또는 셸 특정 프로필 일 수 있습니다. –