main.cpp test.cpp test.hpp
이렇게 3개의 파일이 있습니다.
main.cpp과 test.cpp에는 #include "test.hpp" 전처리기 명령이 있는데요,
여기서 test.cpp에 test.hpp을 넣어주는 이유가 무엇인가요?
test.cpp 에서 test.hpp를 포함하지 않으면 test.hpp 는 어디에도 포함되지 않게 되죠. test.cpp 를 컴파일하는데 필요합니다.
그리고 게시판을 도배하고 계신데, 간단한 사항은 검색이나 책을 찾아보세요.
아 죄송합니다.
한번에 답글을 모두 달아서 같은 시간대에 제 글이 뭉쳐 올라온 것일 겁니다.
1. 전처리기 명령http://moople.tistory.com/5
2. main.cpp 에 #include "test.cpp" 로 코딩해서 테스트해 보세요.
3. 말씀 드리고 싶은 내용은. 파일 하나에 모두 코딩한다고 생각하시면 편합니다. test.h printf("3"); test.cpp printf("2"); main.cpp printf("1");
#include "test2.h" #include "test1.h" 는 코드가 만들어지는 위치 순서'로 생각하시면 편합니다.
4. Makefile을 보면 이런 내용이 있습니다. $GCC = g++.exe $WINDOW_RESOUCE = windres.exe $INCLUDE = -l "C:\include" $LIB = -l "C:\lib" $FLAG = $INCLUDE -threads
main.cpp를 컴파일 하면 main.o 목적 파일이 생성 됩니다. g++ -o main main.cpp -l "C:\include" -threads $GCC -o main main.cpp $FLAG
test.cpp를 컴파일 하면 test.o 목적 파일이 생성 됩니다. g++ -o test.o test.cpp -l "C:\include" -threads g++ -o test.o test.cpp $FLAG
이것을 링크로 묶어주면. exe가 생성됩니다. g++ main.o test.o -o "Project1.exe" -l "C:\lib" $GCC main.o test.o -o "Project1.exe" $LIB
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
'자신의 해더'라는 건 없습니다. include는 그냥 그 파일을 그 자리에 똑같이 복사해 넣은거랑 똑같은 효과를 가집니다. 중요한건 선언이 먼저 되어있어야 한다는 겁니다.
C와 C++은 (앞으로는 어떻게 될련지 모르지만) 각종 언어 중에서 가장 간단한 include 개념을 갖고 있습니다. 그냥 해당 위치에 파일 내용을 그대로 복사하는거죠.
심지어 한 파일에 중복해서 첨가하는걸 막아주는 기능도 없어서, 수동으로 매크로 가드를 쓰던가 pragma 지시자를 쓰던가... 해야되죠.
사실 굳이 따로 안만들고, 각 .c/.cpp 파일마다 복사해서 붙여넣어도 됩니다(!)
확장자 제한도 없습니다. .h를 쓰는건 그냥 관례일 뿐이고, 위에서 말씀하신대로 .hpp를 쓰거나, 아예 확장자를 안쓰거나...
헤더 파일과 .c/.cpp 파일의 내용 구분도 상당히 자의적입니다. 그래서 알아서 프로그래머가 잘 선언과 정의를 구분해서 넣는 것이 중요합니다. 초보때는 이게 적지않게 부담이 되기도 하지요.
헤더 파일이 뭔가 특별한 파일이라고 생각하면, 그순간 이해가 산으로 가는 겁니다. 프로그래머가 자의적으로, 여러군데에 타이핑해야 할 동일한 선언들을 편의를 위해 모아놓은 파일이라고 보시면 됩니다.
아. 그럼
그저 포함한다는 의미로 이해하면 되는군요.
감사합니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
test.cpp 에서 test.hpp를 포함하지
test.cpp 에서 test.hpp를 포함하지 않으면 test.hpp 는 어디에도 포함되지 않게 되죠.
test.cpp 를 컴파일하는데 필요합니다.
그리고 게시판을 도배하고 계신데, 간단한 사항은 검색이나 책을 찾아보세요.
아 죄송합니다.
아 죄송합니다.
한번에 답글을 모두 달아서 같은 시간대에 제 글이 뭉쳐 올라온 것일 겁니다.
정리해보면 이렇습니다.
1. 전처리기 명령
http://moople.tistory.com/5
2. main.cpp 에 #include "test.cpp" 로 코딩해서 테스트해 보세요.
3. 말씀 드리고 싶은 내용은. 파일 하나에 모두 코딩한다고 생각하시면 편합니다.
test.h printf("3");
test.cpp printf("2");
main.cpp printf("1");
#include "test2.h"
#include "test1.h" 는 코드가 만들어지는 위치 순서'로 생각하시면 편합니다.
4. Makefile을 보면 이런 내용이 있습니다.
$GCC = g++.exe
$WINDOW_RESOUCE = windres.exe
$INCLUDE = -l "C:\include"
$LIB = -l "C:\lib"
$FLAG = $INCLUDE -threads
main.cpp를 컴파일 하면 main.o 목적 파일이 생성 됩니다.
g++ -o main main.cpp -l "C:\include" -threads
$GCC -o main main.cpp $FLAG
test.cpp를 컴파일 하면 test.o 목적 파일이 생성 됩니다.
g++ -o test.o test.cpp -l "C:\include" -threads
g++ -o test.o test.cpp $FLAG
이것을 링크로 묶어주면. exe가 생성됩니다.
g++ main.o test.o -o "Project1.exe" -l "C:\lib"
$GCC main.o test.o -o "Project1.exe" $LIB
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
'자신의 해더'라는 건 없습니다. include는
'자신의 해더'라는 건 없습니다. include는 그냥 그 파일을 그 자리에 똑같이 복사해 넣은거랑 똑같은 효과를 가집니다.
중요한건 선언이 먼저 되어있어야 한다는 겁니다.
C와 C++은 (앞으로는 어떻게 될련지
C와 C++은 (앞으로는 어떻게 될련지 모르지만)
각종 언어 중에서 가장 간단한 include 개념을 갖고 있습니다.
그냥 해당 위치에 파일 내용을 그대로 복사하는거죠.
심지어 한 파일에 중복해서 첨가하는걸 막아주는 기능도 없어서,
수동으로 매크로 가드를 쓰던가 pragma 지시자를 쓰던가... 해야되죠.
사실 굳이 따로 안만들고, 각 .c/.cpp 파일마다 복사해서 붙여넣어도 됩니다(!)
확장자 제한도 없습니다.
.h를 쓰는건 그냥 관례일 뿐이고,
위에서 말씀하신대로 .hpp를 쓰거나, 아예 확장자를 안쓰거나...
헤더 파일과 .c/.cpp 파일의 내용 구분도 상당히 자의적입니다.
그래서 알아서 프로그래머가 잘 선언과 정의를 구분해서 넣는 것이 중요합니다.
초보때는 이게 적지않게 부담이 되기도 하지요.
헤더 파일이 뭔가 특별한 파일이라고 생각하면, 그순간 이해가 산으로 가는 겁니다.
프로그래머가 자의적으로, 여러군데에 타이핑해야 할 동일한 선언들을
편의를 위해 모아놓은 파일이라고 보시면 됩니다.
아. 그럼그저 포함한다는 의미로 이해하면
아. 그럼
그저 포함한다는 의미로 이해하면 되는군요.
감사합니다.
댓글 달기