라는 디렉터리 Binary
와 여러 소스 파일이 있습니다.
./
├── Binary/
├── lesson02.cpp
├── lesson04.cpp
└── lesson06.cpp
소스코드를 컴파일할 때
g++ lesson01.cpp -o lesson01
나는 lesson01
에 배치되고 싶다Binary/
답변1
셸 스크립트는 셸에 대화형으로 입력하는 명령과 매우 유사합니다. 이 경우 이 -o
옵션은 g++
바이너리를 배치할 위치를 나타냅니다. 따라서 바이너리 디렉터리에 저장하고 싶다고 말하면 됩니다.
g++ lesson01.cpp -o Binary/lesson01
대화식으로 실행하거나(셸에 입력하여) 셸 스크립트에 넣을 수 있습니다. 둘 다 동일한 작업을 수행합니다.
#!/bin/sh
g++ lesson01.cpp -o Binary/lesson01
그러나 일반적으로 이러한 작업을 수행하려면 쉘 스크립트 대신 Makefile을 사용합니다.
all:
Binary/%: %.cpp
g++ -o "$@" "$<" # Note: this must be a tab, not spaces. Make is annoying like that
그런 다음 를 입력하면 make Binary/lesson01
Make가 프로그램을 컴파일합니다(소스 코드가 기존 바이너리보다 최신이거나 바이너리가 존재하지 않는 경우). 또한 상단에 all:
그 뒤의 모든 프로그램(등)을 나열한 다음 원하는 경우 해당 프로그램을 모두 컴파일하도록 입력할 수도 있습니다.all: Binary/lesson01 Binary/lesson02
make
Make나 쉘 스크립트를 사용하여 고급 작업을 수행할 수도 있지만(예를 들어 모든 프로그램을 나열하는 대신 컴파일할 프로그램 목록을 결정하도록 함) 이는 좀 더 복잡합니다.