C++ 프로그램을 컴파일할 때 바이너리 파일을 바이너리 디렉토리에 넣도록 쉘 스크립트를 어떻게 작성합니까?

C++ 프로그램을 컴파일할 때 바이너리 파일을 바이너리 디렉토리에 넣도록 쉘 스크립트를 어떻게 작성합니까?

라는 디렉터리 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/lesson01Make가 프로그램을 컴파일합니다(소스 코드가 기존 바이너리보다 최신이거나 바이너리가 존재하지 않는 경우). 또한 상단에 all:그 뒤의 모든 프로그램(등)을 나열한 다음 원하는 경우 해당 프로그램을 모두 컴파일하도록 입력할 수도 있습니다.all: Binary/lesson01 Binary/lesson02make

Make나 쉘 스크립트를 사용하여 고급 작업을 수행할 수도 있지만(예를 들어 모든 프로그램을 나열하는 대신 컴파일할 프로그램 목록을 결정하도록 함) 이는 좀 더 복잡합니다.

관련 정보