답변:
간단한 단일 소스 프로그램 인 경우 :
make foo
소스 파일은 foo.c 또는 foo.cpp 등입니다.
심지어 makefile이 필요하지 않습니다. Make에는 소스 파일을 확장명을 빼고 같은 이름의 실행 파일로 빌드하기에 충분한 기본 제공 규칙이 있습니다.
방금 빌드 한 실행 파일을 실행하는 것은 모든 프로그램을 실행하는 것과 동일하지만 셸은 $PATH
실행 파일을 찾기 위해 찾은 내용 만 검색 하고 현재 디렉토리를 포함하지 않는 파일 만 검색하므로 실행 파일 경로를 지정해야합니다 ( .
).
그래서 내장 된 실행 파일을 실행합니다 foo
:
./foo
make main.cpp
,하지만 make main
.
gcc main.cpp -o main.out
./main.out
Undefined symbols for architecture x86_64
문제에 관해서 는 다음과 같이 명령을 수정하고 gcc -lstdc++ main.cpp -o main.out
내 Mac에서 작동합니다. 링크를 통해 : stackoverflow.com/questions/11852568/…
이것은 모든 유닉스 컴퓨터에서 작동하는 명령입니다 ... Linux / Ubuntu에서는 사용하지만 OS X에서도 작동합니다. Terminal.app에 다음 명령을 입력하십시오 .
$ g++ -o lab21 iterative.cpp
-o
0이 아닌 문자 O
lab21
실행 파일이 될 것입니다
iterative.cpp
당신의 C ++ 파일입니까
해당 명령을 실행 한 후 터미널에서 다음을 입력하여 프로그램을 실행하십시오.
$ ./lab21
Unix (Linux, Mac OS X, AIX 등) 환경에서의 모든 응용 프로그램 실행은 실행 가능한 검색 경로에 따라 다릅니다.
다음 명령을 사용하여 터미널에이 경로를 표시 할 수 있습니다.
에코 $ PATH
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
실행하려는 프로그램과 가까운 위치에 있으면 이름을 부분 경로로 한정 할 수 있습니다. 예를 들어, MyProgram
디렉토리 /Users/oliver/MyProject
I에 있고 홈 디렉토리에있는 경우 다음과 같이 실행 파일 이름을 규정하고 실행할 수 있습니다.
MyProject / MyProgram
또는 디렉토리에 /Users/oliver/MyProject2
있고 실행하기를 원한다고 말하면 다음 /Users/oliver/MyProject/MyProgram
과 같은 상대 경로를 사용하여 실행할 수 있습니다.
../MyProject/MyProgram
마찬가지로 MyProgram
"현재 디렉토리"상대 경로를 사용해야하는 것과 동일한 디렉토리에있는 경우 . 현재 디렉토리는 마침표 뒤에 슬래시가 있습니다. 예를 들면 다음과 같습니다.
./MyProgram
현재 사용중인 디렉토리를 판별하려면 pwd
명령 을 사용하십시오 .
일반적으로 이름을 한정하지 않고 실행하려는 하드 디스크의 한 곳에 프로그램을 넣는 경우. 예를 들어, 다른 프로그램의 정기적으로 사용되는 쉘 스크립트에 대해 홈 디렉토리에 "bin"디렉토리가있는 경우 실행 가능 검색 경로를 변경하는 것이 좋습니다.
.bash_profile
홈 디렉토리에서 기존 파일을 작성 또는 편집 하고 행을 추가하여 쉽게 수행 할 수 있습니다 .
#!/bin/sh
export PATH=$PATH:~/bin
여기서 물결표 (~) 문자는 / Users / oliver의 바로 가기로 사용됩니다. 또한 해시 뱅 (#!) 행은 파일의 첫 번째 행이어야합니다 (없는 경우). 이 기술을 사용하려면 로그인 쉘이 bash (Mac OS X 및 대부분의 Linux 배포판의 기본값) 여야합니다. 또한 프로그램이 설치된 ~/bin
시스템 실행 파일에 우선하여 사용되도록하려면 다음과 같이 내보내기 문을 다시 정렬해야합니다.
export PATH=~/bin:$PATH
Ryan, 나는 이것이 너무 짧아서 주석 대신 답변으로 변경하고 있습니다. "터미널"에서이 모든 작업을 수행하십시오.
G ++ 컴파일러를 사용하려면 다음을 수행해야합니다.
* .cpp 파일을 저장 한 디렉토리로 이동하십시오.
cd ~/programs/myprograms/
(~는 집의 바로 가기입니다 (예 : / Users / Ryan / programs / myprograms /), 실제로 사용한 위치로 바꿉니다.)
그것을 컴파일
g++ input.cpp -o output.bin
(output.bin은 확장명을 가진 모든 것이 될 수 있습니다. 실제로 bin은 유닉스에서 일반적입니다.)
거기가 성공하면 아무것도 반환하지 않습니다, 그리고 즉해야 좋아 . 일반적으로 실패시 반품을받습니다.
그러나를 입력 ls
하면 동일한 디렉토리에 파일 목록이 표시됩니다. 예를 들어 다른 폴더 인 input.cpp 및 output.bin이 표시됩니다.
디렉토리 내부에서 이제 ./outbut.bin
이를 수행하는 간단한 방법은 다음과 같습니다.
make foo && ./$_
하나의 라이너를 사용하면 실행 파일을 쉽게 다시 실행할 수 있습니다.
최상의 경고를 받으려면 다음을 추가하십시오. 후회하지 않습니다. 가능하면 WISE를 컴파일하십시오 (경고는 오류입니다)
- Wall -pedantic -Weffc++ -Werror
지시 사항과 함께이 링크를 찾았습니다.
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
기본적으로 당신은 :
gcc hello.c
./a.out (or with the output file of the first command)
gcc hello.c -o a.out
인가요? 어느 것과 동일합니다 gcc hello.c
.
c ++ 파일을 실행하려면 아래 명령을 실행하십시오. 파일 이름이 "main.cpp"라고 가정하십시오.
1. C ++ 파일에서 오브젝트 파일을 작성하도록 컴파일하십시오.
g++ -c main.cpp -o main.o
2. #include <conio.h>
MacOS에서는 지원하지 않으므로 Mac에서 지원하는 대체 방법을 사용해야합니다 #include <curses.h>
. 이제 객체 파일을 실행 파일로 변환해야합니다. 사용하려면 curses.h
library를 사용해야합니다 -lcurses
.
g++ -o main main.o -lcurses
3. 이제 실행 파일을 실행하십시오.
./main