collect2: ld returned 1 exit status
make: *** [opbroker] 오류 1
해결책
Sun Solaris 에서는 -lsocket -lnsl 라이브러리 옵션을 필요로 한다.
Linux 의 경우는 단순히 -lnsl 옵션을 필요로 하고, Mac OS X의 경우 외부 라이브러리를 필요로 하지 않는다.
메뉴얼 페이지에서 사용해야할 라이브러리 이름을 확인하자..!!!
네이버!!!
문제는 -lsocket인데... 컴파일이나 링크시에 -L 옵션을 사용하지 않으셨으면..
/usr/lib 디렉토리의 라이브러리를 찾게 됩니다.
-l 옵션은 뒤의 라이브러리를 찾는데 libsocket.(라이브러리 확장자) 의 파일을 찾습니다. 확장자로는 a, la, so, sl 등이 사용됩니다.
그래서 -lsocket은 /usr/lib/libsocket.(라이브러리 확장자)를, -lnsl은 /usr/lib/libnsl.(라이브러리 확장자)를 가리킵니다. 만약 -L 옵션을 사용했으면 다른 디렉토리도 뒤집니다. 예를 들어 -L/usr/local/lib을 쓰셨다면 앞에서 언급한 패스 이외에 /usr/local/lib/libsocket.(라이브러리 확장자) 와 /usr/local/lib/libnsl.(라이브러리 확장자) 를 찾게 됩니다.
-lsocket과 -lnsl을 쓰신 것으로 봐서는 솔라리스에서 컴파일을 하시는 듯 한데 솔라리스가 아닌 다른 OS에서 컴파일을 하신다면 옵션을 빼주시면 됩니다.