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 ++ 파일을 어떻게 컴파일하는지 공유하고 싶었습니다.
- 5 개의 cpp 파일이 있다고 가정 해 봅시다
g++ -c *.cpp -o myprogram
. 각 cpp 파일 이름 Eg를 입력하는 대신 *를 사용하기 만하면됩니다 . - 이것은 생성합니다
"myprogram"
- 프로그램을 실행
./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
'Programming' 카테고리의 다른 글
쉘 스크립트에서 백틱 대신 $ ()를 사용하면 어떤 이점이 있습니까? (0) | 2020.06.16 |
---|---|
z / OS의 C ++에서 C 소켓 API를 사용하는 방법 (0) | 2020.06.16 |
ssh : 호스트 'hostname'의 신뢰성을 설정할 수 없습니다 (0) | 2020.06.15 |
루비 보내기 대 __send__ (0) | 2020.06.15 |
PHP에 배열 키가 있는지 확인하는 것이 더 빠르고 더 좋은 방법은 무엇입니까? (0) | 2020.06.15 |