답변:
main.cpp 다음에 다른 모든 cpp 파일을 나열하십시오.
즉
g++ main.cpp other.cpp etc.cpp
등등.
또는 모두 개별적으로 컴파일 할 수 있습니다. 그런 다음 결과 ".o"파일을 모두 연결하십시오.
클래스를 .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 ++ 파일을 어떻게 컴파일하는지 공유하고 싶었습니다.
g++ -c *.cpp -o myprogram
. 각 cpp 파일 이름 Eg를 입력하는 대신 *를 사용하기 만하면됩니다 ."myprogram"
./myprogram
그게 다야!!
내가 *를 사용하는 이유는 30 cpp 파일이 있으면 모두 입력하겠습니까? 또는 * 기호를 사용하여 시간을 절약하십시오 :)
ps makefile에 관심이없는 경우에만이 방법을 사용하십시오.
#include <myheader.hpp>
cpp 파일 내부 에서 사용하려면 다음을 사용할 수 있습니다.
g++ *.cpp -I. -o out
나는 현재 디렉토리의 모든 파일을 컴파일 한 사용자 정의 Makefile을 사용했지만 매번 필요한 모든 디렉토리에 파일을 복사해야했습니다.
그래서 많은 파일을 컴파일 할 때 프로세스를 훨씬 쉽게하는 내 자신의 도구 인 Universal Compiler 를 만들었습니다.
~ / In_ProjectDirectory $ g ++ coordin_main.cpp coordin_func.cpp coordin.h
~ / In_ProjectDirectory $ ./a.out
... 일했다!
Geany IDE와 함께 Linux Mint 사용
각 파일을 동일한 디렉토리에 저장했을 때 하나의 파일이 디렉토리 내에 올바르게 저장되지 않았습니다. coordin.h 파일 따라서 다시 확인하고 거기에 coordin.h로 저장되고-> coordin.h.gch로 잘못 저장되지 않았습니다. 작은 것들. 아아!
g++ *.cpp -o output