본문 바로가기
Programming/C, C++

[Linux,C++] getenv.c: undefined reference secure_getenv

by 근육곰돌이 2019. 3. 29.
728x90

[Linux] getenv.c: undefined reference secure_getenv

[C++] update glibc to 2.17 for CentOS 6

1. 증상


getenv.c undefined reference secure_getenv

getenv.c:(.text+0x1): undefined reference to `secure_getenv'

2. 원인


secure_getenv 함수는 glibc 2.17 이상 시 사용 가능하다.

**secure_getenv**() first appeared in glibc 2.17. 

--> secure_getenv 함수 원문: <https://linux.die.net/man/3/secure_getenv>

3. 조치


필자는 CentOS 6 x86_64를 사용하고 있어서, glibc 2.17 centOS 6 버전을 업데이트한다.
여기서 CentOS 6는 2.12가 최신 기본 업데이트이므로, yum으로는 설치가 되지 않아 직접 찾아서 설치해야함.

(update glibc to 2.17 for CentOS 6)

--- 일반 동적 라이브러리 일 경우 조치

wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm


rpm -Uvh glibc-2.17-55.el6.x86_64.rpm \
glibc-common-2.17-55.el6.x86_64.rpm \
glibc-devel-2.17-55.el6.x86_64.rpm \
glibc-headers-2.17-55.el6.x86_64.rpm
--- static 라이브러리 일 경우 조치

wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-static-2.17-55.el6.x86_64.rpm


rpm -Uvh glibc-static-2.17-55.el6.x86_64.rpm \

 

 

참고로 rpm 설치 시 --nodeps 하면 의존성 제거되어 설치할수 있습니다.

glibc는 참조하는 서드파티들이 많아서, 설치 시 유념해야함.
자칫 잘못하면 리눅스에서 아무것도 못합니다.

 

 

 

 

반응형