컴파일 링크 에러
글쓴이: hivaless / 작성시간: 화, 2005/12/06 - 6:48오후
소스를 컴파일하고 있는데, 각 소스의 컴파일을 모두 성공적으로 되는데, 컴파일된 오브젝트 파일을 링크하는 과정에서
cout, socket, connect 등이 정의되지 않았다고
에러메시지가 출력됩니다.
g++ a1.cpp -c
g++ a2.cpp -c
와 같은 과정에서의 컴파일은 잘 되는데
g++ -o a.out a1.o a2.o
이 과정에서 위와 같은 에러 메시지가 출력됩니다.
OS 버젼은 SunOS e250 5.8 Generic_117350_26 sun4u sparc SUNW.Ultra-250
이고
gcc 버젼은 gcc version 2.95.3 20010315(release)
입니다.
제 생각엔 cout과 socket 모듈이 속해 있는 library 파일을 -l 옵션을 이용해 링크를 시켜줘야 할 것 같은데...
리눅스 gcc 3.XX 버젼에서는 성공적으로 실행파일을 만들었는데, 이 곳 환경에서는 잘 되지 않네요...
어떻게 해결 해야 할까요.. 꼭 좀 답변 부탁드립니다~
Forums:
socket, connect 는 -lsocket -lnsl 옵션 줘야 합
socket, connect 는 -lsocket -lnsl 옵션 줘야 합니다.
cout 은 모르겟군요. -lstd++ 인가요??
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
그렇군요.. 그런데 cout 은 여전히 정의되지 않은 기호라고 나옵니다.
그렇군요.. 그런데 cout 은 여전히 정의되지 않은 기호라고 나옵니다.
-lstdc++ 옵션을 줘도 그렇네요...
cout 은 어느 라이브러리에 있는지... 확인해 볼 수 있는 방법은 없나요..
먼저 아래 명령어로 [code:1]g++ -print-search
먼저 아래 명령어로
libraries 경로를 찾습니다. --> lib_path
그리고 해당 경로 밑으로 해서 nm 을 돌립니다.
만약 저 경로에서 아무것도 발견되지 않으면 libgcc 가 설치안된거 같습니다.
아니면 경로에 없거나요.
libstdc++.a 라는 파일이 있을 겁니다. 이 파일을 찾아 보세요.
파일이 있는데도 계속 링크 에러가 나는 경우는 -L 옵션으로 파일이 있는 경로를
주시기 바랍니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
댓글 달기