소켓프로그램에 대한 간단한 질문
글쓴이: 메르 / 작성시간: 목, 2003/03/20 - 4:06오후
소켓 프로그램을 짜서 -lsocket 옵션을 주니
아래와 같은 내용이 나오네요
server> gcc -o k main.c -lsocket
/usr/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status
환경파일이나 패스를 잡아 주어야 되나요
참고 사항 >
옵션을 안주면 에러가 안나거든요 ...전에는 분명 소켓을 사용시 -lnsl -lsocket
이런 옵션이 필요 했던거 같은데 -_-
gcc 2.96을 쓰고 있는데 버전과 상관이 있나요??
Forums:
-lsocket을 main.c 앞쪽에 써주세요 ^^라이브러리 옵션이
-lsocket을 main.c 앞쪽에 써주세요 ^^
라이브러리 옵션이 아니라 그냥 ld로 통합할 object 파일 이름으로 보고 있네요.
서명:
이것은 올리는 글에 첨부될 사인 문구입니다. 제한은 255 글자입니다
순서를 바꾸어 (아래와 같이)gcc -o k -lsocket ma
순서를 바꾸어 (아래와 같이)
gcc -o k -lsocket main.c
gcc -lsocket -o k main.c
똑같은 에러가 나네요
컴파일 환경이 redhat7.2 gcc 2.96 입니다.
lsocket , lC 등 몇가지 옵션을 사용하면
usr/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status
이런 에러가 나옵니다...
어떻게 해야 되나요
그냥 빼버리세여..
-lsocket -lnsl 은 Sun 쪽에서 소켓 관련 프로그램할 때
링크시켜야 하는 라이브러리인데, 다른 쪽에서는 사용안하기 때문에
빼 주셔야 합니다.
Re: 그냥 빼버리세여..
답변에 감사 합니다.
최종호님 글이 맞네요
glibc에는 이미 소켓 라이브러리가 포함되어 있다네요 ^^;
이미 해결된 문제긴 하지만, 사족을 달자면,그런 library 문
이미 해결된 문제긴 하지만, 사족을 달자면,
그런 library 문제여부때문에 Makefile 만들때 두개로 만들지 마시고,
autotool을 이용하시는 것이 좋습니다.
autoconf 만 가지고도 configure 를 통해 socket library가 존재하는 지를 보고, Makefile을 만들도록 할 수 있습니다.
닭질인생...
---
http://coolengineer.com
댓글 달기