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는 참조하는 서드파티들이 많아서, 설치 시 유념해야함.
자칫 잘못하면 리눅스에서 아무것도 못합니다.
반응형
'Programming > C, C++' 카테고리의 다른 글
[C++, Error] (centos) cannot find -lstdc++ (0) | 2020.06.24 |
---|---|
[Linux, C/C++] undefined reference to '__gxx_personality_v0' 오류 조치 (0) | 2020.04.09 |
[C, Error] error: use of undeclared identifier '함수' (0) | 2020.04.09 |
[C++, Error] unresolved overloaded function type (0) | 2019.07.22 |
[C/C++] 소켓에서 컴파일 에러 (invalid conversion from int* to socklen_t*) (0) | 2019.02.26 |