ld.so.conf 파일에 명시해 주는 것은 컴파일된 프로그램이 shared lib 을 찾을 위치입니다. 즉 실행파일이 실행 중에 만약 shared lib 이 필요하다면 ld.so.conf 에 명시된 위치를 차례대로 scan 하여 해당 라이브러리가 없는지 찾게 되는 것입니다. 그러므로 컴파일과는 상관이 없습니다.
컴파일시에는 해당 라이브러리와 라이브러리의 위치를 적어 주셔야 합니다. 대체로 다음과 같은 옵션을 적어 주게 됩니다.
/L/usr/local/pgsql/lib /lpq /I/usr/local/pgsql/include
참고가 되시길 바랍니다.
>>이태웅 님께서 쓰시길<<
:: 안녕하세요~
:: 위에건 다른 사람의 컴퓨터였고요~
:: 제 컴퓨터에도 progresql을 깔고 다시 컴파일을 해보았습니다.
:: sql은 제가 직접 컴파일을 했고요~
:: /usr/local/pgsql 에 깔려있습니다.
:: /etc/ld.so.conf 에 /usr/local/pgsql/lib 를 추가했습니다.
:: 그리고 처음에 include한 부분은
:: #include <stdio.h>
:: #include "/usr/local/pgsql/include/libpq/fe.h"
:: 입니다. #include "libpq/fe.h"라고만 적으면 파일의 위치를 못찾고요.
:: cc /c 파일명.c 라고 적으면 컴파일에는 문제가 없습니다.
:: 링크될때 문제가 되는 것으로 생각이 되는데...
:: 다른 분들의 의견은 어떤지 알고 싶습니다.
:: 라이브러리가 있는 곳을 /etc/ld.so.conf에 명시하면
:: 자동으로 라이브러리를 찾아서 명시하는 것이 아닌지요?
:: 전에 어떤 글을 보니 수학함수를 쓰면 컴파일/링크를 할때 다른 옵션을
:: 더 주었던 것으로 기억하는데....
:: 부탁드립니다.
|