나는 (여기서 내가 디렉토리에 있다고 가정) 을 입력하여 프로그램을 컴파일하려고 합니다
clang++ file_name.cpp
. 자동으로 컴파일되고 실행되어야 하지만 이벤트가 종료되지 않고 입력을 위해 터미널이 다시 열립니다. 폴더 디렉터리에 "a.out"이라는 파일이 보입니다. 을 입력하면
clang++ file_name.cpp
아무 일도 일어나지 않고 터미널로 돌아갑니다. 를 입력하면
clang++ a.out.cpp
컴파일러는 파일을 찾을 수 없다고 말한 다음 컴파일러를 닫습니다. clang이 올바르게 설치되었는지 확인하려고 노력했는데 제대로 설치되었습니다. 나는 무엇이 잘못되었는지 모른다.
답변1
유사한 컴파일러는 clang++
소스 코드만 컴파일합니다. 귀하의 경우에는 실행 파일을 생성합니다 a.out
(해당 옵션을 사용하여 다른 출력 파일 이름을 사용하도록 명시적으로 지시하지 않았기 때문입니다 -o
). 컴파일러는 생성된 실행 파일을 자동으로 실행하지 않습니다. 이러한 사항은 g++
GNU C++ 컴파일러와 C clang
컴파일러 gcc
(그리고 컴파일이 필요한 대부분의 다른 언어용 컴파일러) 에도 적용됩니다 .
실행 파일을 실행하려면 다음 명령을 실행하십시오.
./a.out
쉘 명령 프롬프트에서.
실행 파일에 기존 기본 이름이 아닌 다른 이름을 지정하려면 a.out
다음과 같이 사용하십시오.
clang++ -o myprog file_name.cpp
myprog
소스에서 생성되었습니다 file_name.cpp
.
소스 코드가 단일 파일로 제공되면 다음을 file_name.cpp
사용 하여 소스 코드를 실행 파일로 컴파일 make
할 수도 있습니다.file_name
make file_name
file_name
소스 코드 파일과 동일한 디렉터리에 있습니다(단, 마지막 컴파일 이후 소스 코드가 업데이트된 경우에만 해당). 반드시 Makefile
존재할 필요는 없지만 내장된 암시적 규칙이 make
C++ 소스 코드를 컴파일하는 데 사용됩니다.
사용
CXX=clang++ make file_name
clang++
명시적으로 컴파일러를 사용합니다 .
이에 대한 자세한 내용은 make
관련 GNU 문서를 참조하세요.암시적 규칙make
( BSD 시스템과 같은 다른 구현에서는 유사한 암시적 규칙을 사용합니다.)