g++의 기초적인 사용법좀 부탁드립니다.
g++을 통해 기초적인? 파일을 컴파일 하려고 합니다.
main함수가 존재하는 client.cpp
client에서 include하는 sorted.h와 sorted.cpp
sorted.h에서 include하는 ItemType.h
ItemType.h가 include하는 StrTypeAugment.h와 StrTypeAugment.cpp
(파일 명을 보시면 아시는 분은 아시겠지만 자료구조 리스트 공부에 사용되는 파일 입니다.ㅋ)
모 VS6.0에서는 지극히 평범하게 하던대로 하면 될텐데
G++에서 컴파일 할때는 include가 재대로 안되는거 같습니다.
지금 막히는 거 뿐만 아니라 지난번에도 h와cpp 그리고 main함수가 존재하는 cpp 이렇게
파일 3개짜리를 컴파일 하는데도 h와 같이 있는 cpp를 인식하지 못하는거 같더군요.
에러 메세지에 함수가 정의되지 않았다고 뜨는걸 보면.. 그래서 파일 1개에 class선언 및
구현, main함수를 몰아서 하니깐 정상적으로 컴파일이 됬었습니다.
이번꺼는 파일 하나로 모아서 컴파일 할 수도 없고 해서 질문을 올려봅니다.
위에 열거한 파일을 VS6.0에서 컴파일 하면 됩니다.
제가 사용한 명령어는
쉘]$ g++ -o client client.cpp
쉘]$ g++ -o client -I현재파일이위치한디렉토리 client.cpp
이렇게 2개를 해봐도 에러 메세지는 동일하군요.
gcc또는 g++을 이용한 컴파일에 대한
너무 기초적인 문제일지 몰라도 방법에 대한 답변 부탁드립니다.
-------------------------------------------------------------
g++ 버전입니다.
[쉘]$ g++ -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.0 20060304 (Red Hat 4.1.0-3)
모든 cpp파일을 다
모든 cpp파일을 다 포함해 주셔야합니다..
VC에서도 cpp파일은 다 프로젝트에 포함되어야지만 정상으로 컴파일됩니다
인용: 쉘]$ g++ -o client
g++에 다른 옵션 없이 위와 같이 사용할 경우 compile한 후 link까지 시도를 합니다.
-c 옵션을 주시면 링크하지 않고 compile만 해서 object파일을 만들어 줍니다.
답변 감사합니다.
cpp파일을 모두 적어주니 컴파일이 되는군요.
답변 감사합니다.
댓글 달기