Programming

G ++를 사용하여 여러 .cpp 및 .h 파일 컴파일

procodes 2020. 6. 15. 22:48
반응형

G ++를 사용하여 여러 .cpp 및 .h 파일 컴파일


방금 메인 함수와 다른 함수를 포함하는 하나의 cpp 파일로 잘못 작성된 C ++ 코드를 상속했습니다. .h클래스와 함수 정의를 포함하는 파일 있습니다.

지금까지 프로그램은 명령을 사용하여 컴파일되었습니다 g++ main.cpp. 클래스를 분리 .h하고 .cpp파일을 만들었으므로 makefile을 사용해야합니까, 아니면 여전히 g++ main.cpp명령을 사용할 수 있습니까?


main.cpp 다음에 다른 모든 cpp 파일을 나열하십시오.

g++ main.cpp other.cpp etc.cpp

등등.

또는 모두 개별적으로 컴파일 할 수 있습니다. 그런 다음 결과 ".o"파일을 모두 연결하십시오.


연결하지 않고 별도로 컴파일하려면 -c옵션 을 추가해야합니다 .

g++ -c myclass.cpp
g++ -c main.cpp
g++ myclass.o main.o
./a.out

클래스를 .h 및 .cpp 파일로 분리 했으므로 makefile을 사용해야합니까, 아니면 "g ++ main.cpp"명령을 계속 사용할 수 있습니까?

Makefile에 파일을 넣으려면 한 번에 여러 파일을 컴파일하는 것이 좋지 않습니다.

일반적으로 Makefile ( GNU / Make 용 )에서는 다음과 같이 작성하면 충분합니다.

# "all" is name of the default target, running "make" without params would use it
all: executable1

# for C++, replace CC (c compiler) with CXX (c++ compiler) which is used as default linker
CC=$(CXX)

# tell which files should be used, .cpp -> .o make would do automatically
executable1: file1.o file2.o

그렇게하면 make다시 컴파일 해야하는 것만 올바르게 다시 컴파일합니다. 헤더 파일 종속성을 생성하기 위해 약간의 조정을 추가 할 수 있으므로 헤더 파일 변경으로 인해 재구성해야 할 내용을 올바르게 다시 작성해야합니다.


원하는 경우 여전히 g ++을 직접 사용할 수 있습니다.

g++ f1.cpp f2.cpp main.cpp

여기서 f1.cpp 및 f2.cpp는 함수가 포함 된 파일입니다. make를 사용하여 빌드를 수행하는 방법에 대한 자세한 내용은 훌륭한 GNU make 문서를 참조하십시오 .


나는이 질문이 몇 년 전에 요청되었지만 여전히 여러 c ++ 파일을 어떻게 컴파일하는지 공유하고 싶었습니다.

  1. 5 개의 cpp 파일이 있다고 가정 해 봅시다 g++ -c *.cpp -o myprogram. 각 cpp 파일 이름 Eg를 입력하는 대신 *를 사용하기 만하면됩니다 .
  2. 이것은 생성합니다 "myprogram"
  3. 프로그램을 실행 ./myprogram

그게 다야!!

내가 *를 사용하는 이유는 30 cpp 파일이 있으면 모두 입력하겠습니까? 또는 * 기호를 사용하여 시간을 절약하십시오 :)

ps makefile에 관심이없는 경우에만이 방법을 사용하십시오.


.h 파일은 컴파일과 아무런 관련이 없습니다 ... 당신은 cpp 파일에만 관심이 있습니다. g++ filename1.cpp filename2.cpp main.cpp -o myprogram

는 각 cpp 파일을 컴파일 한 다음에 서로 연결한다는 의미 myprgram입니다.

그런 다음 프로그램을 실행하십시오. ./myprogram


여러 g ++ 명령을 사용한 다음 링크 할 수 있지만 가장 쉬운 방법은 전통적인 Makefile 또는 다른 빌드 시스템을 사용하는 것입니다 .Scons (Makefile보다 설정하기가 더 쉽습니다).


나는 현재 디렉토리의 모든 파일을 컴파일 한 사용자 정의 Makefile을 사용했지만 매번 필요한 모든 디렉토리에 파일을 복사해야했습니다.

그래서 많은 파일을 컴파일 할 때 프로세스를 훨씬 쉽게하는 내 자신의 도구 인 Universal Compiler 를 만들었습니다.


으로 rebenvp는 말했다 내가 사용 :

g++ *.cpp -o output

그런 다음 출력을 위해이 작업을 수행하십시오.

./output

그러나 더 나은 해결책은 make파일 을 사용하는 것 입니다. 파일 에 대한 자세한 내용을 보려면 여기읽으 십시오make .

또한 .h파일에 필요한 파일을 추가했는지 확인하십시오 .cpp.


~ / In_ProjectDirectory $ g ++ coordin_main.cpp coordin_func.cpp coordin.h

~/In_ProjectDirectory $ ./a.out

... Worked!!

Using Linux Mint with Geany IDE

When I saved each file to the same directory, one file was not saved correctly within the directory; the coordin.h file. So, rechecked and it was saved there as coordin.h, and not incorrectly as -> coordin.h.gch. The little stuff. Arg!!

참고URL : https://stackoverflow.com/questions/3202136/using-g-to-compile-multiple-cpp-and-h-files

반응형