UNIX 콘솔/MAC 터미널에서 C/C ++를 컴파일하고 실행하는 방법은 무엇입니까?
문제
UNIX 콘솔 또는 MAC 터미널에서 C 또는 C ++를 컴파일/실행하려면 어떻게해야합니까?
(나는 그것을 알고, 그것을 잊고, 그것을 다시 배우십시오. 그것을 적어야 할 시간입니다.)
해결책
간단한 단일 소스 프로그램 인 경우 :
make foo
소스 파일이 foo.c 또는 foo.cpp 등의 위치.
당신은 makefile도 필요하지 않습니다. Make에는 소스 파일을 동일한 이름 인 마이너스 확장자로 빌드 할 수있는 충분한 내장 규칙이 있습니다.
방금 구축 된 실행 파일을 실행하는 것은 모든 프로그램을 실행하는 것과 동일하지만, 쉘은 안에있는 것을 검색하기 때문에 실행 파일의 경로를 지정해야합니다. $PATH
실행 파일을 찾으려면 현재 디렉토리가 포함되지 않는 경우가 가장 많습니다..
).
구축 된 실행 파일을 실행합니다 foo
:
./foo
다른 팁
gcc main.cpp -o main.out
./main.out
이것은 모든 UNIX 머신에서 작동하는 명령입니다 ... Linux/Ubuntu에서 사용하지만 OS X에서도 작동합니다. 다음 명령을 입력하십시오 터미널. 앱.
$ g++ -o lab21 iterative.cpp
-o
문자는 0이 아닙니다
lab21
실행 파일이됩니다
iterative.cpp
C ++ 파일입니다
해당 명령 유형을 실행 한 후 터미널에서 다음을 프로그램 실행합니다.
$ ./lab21
나를위한 두 단계 :
첫 번째:
make foo
그 다음에:
./foo
UNIX (Linux, Mac OS X, AIX 등)의 모든 응용 프로그램 실행은 실행 가능한 검색 경로에 따라 다릅니다.
이 명령으로 터미널 에이 경로를 표시 할 수 있습니다.
에코 $ 경로
Mac OS X (기본적으로)에서는 다음과 같은 콜론 분리 검색 경로가 표시됩니다.
/usr/bin :/bin :/usr/sbin :/sbin :/usr/local/bin :/usr/x11/bin
따라서 나열된 디렉토리의 모든 실행 파일은 이름으로 입력하여 실행할 수 있습니다. 예를 들어:
고양이 mytextfile.txt
이것은 실행됩니다 /bin/cat
그리고 터미널에 mytextFile.txt를 표시합니다.
실행 파일 검색 경로에없는 다른 명령을 실행하려면 실행 파일로의 경로를 자격을 갖추어야합니다. 그래서 Mac OS XI의 홈 디렉토리에 MyProgram이라는 실행 파일이 있다고 가정 해 봅시다.
/사용자/Oliver/MyProgram
실행하려는 프로그램 근처에있는 위치에 있다면 부분 경로로 이름을 자격을 얻을 수 있습니다. 예를 들어, if MyProgram
디렉토리에있었습니다 /Users/oliver/MyProject
나와 나는 내 홈 디렉토리에 있었고, 이와 같은 실행 파일 이름을 자격을 갖추고 실행할 수 있습니다.
myProject/myProgram
또는 내가 디렉토리에 있다고 말합니다 /Users/oliver/MyProject2
그리고 나는 실행하고 싶었다 /Users/oliver/MyProject/MyProgram
이와 같은 상대 경로를 사용하여 실행할 수 있습니다.
../myproject/myprogram
마찬가지로 내가 같은 디렉토리에있는 경우 MyProgram
"현재 디렉토리"상대 경로를 사용해야합니다. 현재 디렉토리는 기간 문자와 슬래시입니다. 예를 들어:
./myProgram
현재 사용중인 디렉토리를 결정하려면 pwd
명령.
일반적으로 이름을 진정시키지 않고 실행하려는 하드 디스크에 프로그램을 배치하는 경우. 예를 들어, 다른 프로그램의 정기적으로 사용 된 쉘 스크립트를 위해 홈 디렉토리에 "빈"디렉토리가있는 경우 실행 가능한 검색 경로를 변경하는 것이 좋습니다.
기존을 만들거나 편집하여 쉽게 할 수 있습니다. .bash_profile
홈 디렉토리에 파일을 파일하고 줄 추가 :
#!/bin/sh
export PATH=$PATH:~/bin
여기에서 tilde (~) 문자는 /사용자 /올리버의 단축키로 사용됩니다. 또한 해시 뱅 (#!) 라인은 파일의 첫 번째 줄 (아직 존재하지 않는 경우)이어야합니다. 또한이 기술은 로그인 쉘 (Mac OS X 및 대부분의 Linux 배포판의 기본값)이어야합니다. 또한 프로그램을 설치하려면 ~/bin
시스템 실행 파일을 선호하려면 다음과 같이 내보내기 명령문을 재정렬해야합니다.
export PATH=~/bin:$PATH
Ryan, 나는 이것을 댓글 대신 답변으로 바꾸고 있습니다. 너무 짧은 것처럼 보이기 때문입니다. 이 모든 것을 "터미널"으로 수행하십시오.
G ++ 컴파일러를 사용하려면 다음을 수행해야합니다.
*.cpp 파일을 저장 한 디렉토리로 이동하십시오.
cd ~/programs/myprograms/
(~ ~는 집, IE/user/Ryan/프로그램/MyPrograms/MyPrograms의 바로 가기입니다. 실제로 사용한 위치로 교체하십시오.)컴파일하십시오
g++ input.cpp -o output.bin
(output.bin은 실제로 모든 연장선이 될 수 있습니다. 빈은 유닉스에서 일반적입니다.)성공했다면 반품이 없어야합니다. 좋아요. 일반적으로 실패에 대한 수익을 얻습니다.
그러나 입력하면
ls
, 동일한 디렉토리에 파일 목록이 표시됩니다. 예를 들어 다른 폴더, 입력 .cpp 및 output.bin이 표시됩니다.디렉토리 내부에서 이제 실행하십시오
./outbut.bin
현재 디렉토리가 경로에 없다고 가정하면 구문은 ./[name of the program]
.
예를 들어 ./a.out
최고의 경고를 얻으려면 팔로우를 추가하면 후회하지 않을 것입니다. 가능하면 현명한 컴파일 (경고는 오류입니다)
- Wall -pedantic -Weffc++ -Werror
그렇게 할 수있는 소형 방법은 다음과 같습니다.
make foo && ./$_
하나의 라이너를 갖는 것이 좋으므로 실행 파일을 다시 쉽게 다시 실행할 수 있습니다.
C 또는 C ++ 프로그램을 컴파일하려면 일반적인 명령이 있습니다.
make filename
./filename
Make는 소스 파일을 동일한 이름의 실행 파일로 빌드합니다. 그러나 표준 방식을 사용하려면 GCC 컴파일러를 사용하여 C 프로그램 및 C ++ 용 G ++를 구축 할 수 있습니다.
C :
gcc filename.c
./a.out
C ++의 경우 :
g++ filename.cpp
./a.out
a makefile
. 매우 작은 (= 1 파일) 프로젝트의 경우조차도 시간을 테스트하기 위해 여러 세트의 컴파일러 설정을 가질 수 있기 때문에 노력할 가치가 있습니다. 디버깅 및 배포는 이런 식으로 훨씬 쉽게 작동합니다.
읽기 make
수동, 그것은 언뜻보기에 꽤 오래 보이지만 대부분의 섹션은 당신이 단지 훑어 볼 수 있습니다. 대체로 몇 시간이 걸렸고 훨씬 더 생산적으로 만들었습니다.
이 링크가 지시 사항을 찾았습니다.
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs--mac-os-x/
기본적으로 당신은 다음과 같습니다.
gcc hello.c
./a.out (or with the output file of the first command)
C/CPP 파일이있는 디렉토리를 입력하십시오.
C 코드를 컴파일하고 실행하는 경우.
$gcc filename.c
$./a.out filename.c
C ++ 코드를 컴파일하고 실행하는 경우.
$g++ filename.cpp
$./a.out filename.cpp
"$"는 기본 MAC 터미널 기호입니다
Mac 터미널에서 CPP 소스 코드를 컴파일하고 실행하려면 다음을 수행해야합니다.
- CPP 파일의 경로가 somepath/filename.cpp 인 경우 먼저 경로가있는 디렉토리로 이동하십시오.
- filename.cpp를 컴파일하려면 c ++ filename.cpp -o 파일 이름을 입력하십시오.
- 프로그램을 실행하려면 ./filename을 입력하십시오
터미널을 사용하여 .C 파일을 실행하는 것은 2 단계 프로세스입니다. 첫 번째 단계는 터미널에 GCC를 입력하고 .c 파일을 터미널로 떨어 뜨린 다음 누른 다음 입력하다:
username$ gcc /Desktop/test.c
두 번째 단계에서 다음 명령을 실행하십시오.
username$ ~/a.out