ld는 ld.so.conf를 무시합니다.

ld는 ld.so.conf를 무시합니다.

이 내 꺼야/etc/ld.so.conf

/usr/local/lib64
/usr/local/lib
include /etc/ld.so.conf.d/*.conf

디렉토리에는 다음 줄만 /etc/ld.so.conf.d/포함됩니다 mysql-x86_64.conf./usr/lib64/mysql

/usr/lib64/mysql[파일에 나열됨 ] 디렉터리 에는 .conf다음 파일이 포함되어 있습니다.

total 45,961,216
drwxr-xr-x   2 root root      4,096 Apr 11 17:20 ./
drwxr-xr-x 121 root root     81,920 Mar 30 20:01 ../
-rw-r--r--   1 root root 28,951,398 Dec  9 21:40 libmysqlclient.a
lrwxrwxrwx   1 root root         20 Dec  9 21:56 libmysqlclient.so -> libmysqlclient.so.21*
lrwxrwxrwx   1 root root         25 Dec  9 21:56 libmysqlclient.so.21 -> libmysqlclient.so.21.1.19*
-rwxr-xr-x   1 root root 16,869,104 Dec  9 21:40 libmysqlclient.so.21.1.19*
-rw-r--r--   1 root root     44,910 Dec  9 21:36 libmysqlservices.a

실행 ldconfig -p | grep mysql결과:

    libmysqlclient.so.21 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.21
    libmysqlclient.so (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so

매우 작은 MySQL 테스트 프로그램을 연결하려고 하면 다음 오류가 발생합니다.

/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: cannot find -lmysqlclient

-L/usr/lib64/mysql링커에 추가하면 작동합니다.

내 질문:

이에 따르면답변인터넷에서 찾은 다른 문서에서는 ldd파일 내용을 고려하고 있습니다 /etc/ld.so.conf. 제 경우에는 왜 내용이 무시됩니까? 내가 뭘 잘못했나요?

답변1

ld.so.confld.so런타임 동적 링커 구성 파일입니다.

ld일부러 무시하세요. 자체 기본값이 있으며 에 의해 결정됩니다 -L. 일반적으로 검색 경로는 이를 구동하는 컴파일러에 의해 결정됩니다. gcc -print-search-dirsGCC를 참조하세요.

LD_LIBRARY_PATH에만 영향을 미칩니다 ld.so.아니요ld.

당신은 또한 볼 수 있습니다정적 링커, 동적 링커, 로더 및 동적 로더의 실행 가능한 ELF 파일은 무엇입니까?

관련 정보