libgflags.so.2.2 그리고 glog.so 컴파일 오류 cannot open shared object file/symbol lookup error 해결 방법

오류 메시지는 다음과 같습니다.

./curve_fitting: error while loading shared libraries: libgflags.so.2.2: cannot open shared object file: No such file or directory

./curve_fitting: symbol lookup error: /usr/local/lib/libglog.so.0: undefined symbol: _ZN6google14FlagRegistererC1ISsEEPKcS3_S3_PT_S5_
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

오류 (1) 는 다음과 같습니다.


./curve_fitting: error while loading shared libraries: libgflags.so.2.2: cannot open shared object file: No such file or directory
그리고 이것은 내가 컴파일한 것을 모두 통과한 것이고 실행 가능한 파일을 생성했지만 이 오류를 일깨워 주었다. 그리고 시도: sudo apt-get installlibglags는 무효입니다. 내가 이미 설치했음을 보여줍니다!

오보 (1) 해결 방법:


Step1:

 git clone https://github.com/gflags/gflags

Step2:

 cd gflags
 mkdir build
 cd build

Step3(중요):


build에 들어가면 다음을 입력합니다.
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=google -G"Unix Makefiles" ..

다음 입력
make -j4

make를 발견하면 다음과 같은 피드백 메시지가 표시됩니다.
➜  build git:(master) make -j4
Scanning dependencies of target gflags_shared
Scanning dependencies of target gflags_nothreads_shared
[ 37%] Building CXX object CMakeFiles/gflags_nothreads_shared.dir/src/gflags_reporting.cc.o
[ 37%] Building CXX object CMakeFiles/gflags_shared.dir/src/gflags.cc.o
[ 37%] Building CXX object CMakeFiles/gflags_shared.dir/src/gflags_reporting.cc.o
[ 50%] Building CXX object CMakeFiles/gflags_nothreads_shared.dir/src/gflags.cc.o
[ 62%] Building CXX object CMakeFiles/gflags_shared.dir/src/gflags_completions.cc.o
[ 75%] Building CXX object CMakeFiles/gflags_nothreads_shared.dir/src/gflags_completions.cc.o
[ 87%] Linking CXX shared library lib/libgflags_nothreads.so
[100%] Linking CXX shared library lib/libgflags.so
[100%] Built target gflags_nothreads_shared
[100%] Built target gflags_shared

이것은libgflags를 보았기 때문에 사실 이미 좀 즐거웠다.so, 공유 라이브러리가 성공적으로 생성되었다는 것을 설명합니다!계속 입력
sudo make install

피드백 정보는 다음과 같습니다.
➜  build git:(master) sudo make install
[ 50%] Built target gflags_nothreads_shared
[100%] Built target gflags_shared
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/lib/libgflags.so.2.2.1
-- Installing: /usr/local/lib/libgflags.so.2.2
-- Installing: /usr/local/lib/libgflags.so
-- Installing: /usr/local/lib/libgflags_nothreads.so.2.2.1
-- Installing: /usr/local/lib/libgflags_nothreads.so.2.2
-- Installing: /usr/local/lib/libgflags_nothreads.so
-- Installing: /usr/local/include/gflags/gflags.h
-- Installing: /usr/local/include/gflags/gflags_declare.h
-- Installing: /usr/local/include/gflags/gflags_completions.h
-- Installing: /usr/local/lib/cmake/gflags/gflags-config.cmake
-- Installing: /usr/local/lib/cmake/gflags/gflags-config-version.cmake
-- Old export file "/usr/local/lib/cmake/gflags/gflags-targets.cmake" will be replaced.  Removing files [/usr/local/lib/cmake/gflags/gflags-targets-release.cmake].
-- Installing: /usr/local/lib/cmake/gflags/gflags-targets.cmake
-- Installing: /usr/local/lib/cmake/gflags/gflags-targets-release.cmake
-- Up-to-date: /usr/local/bin/gflags_completions.sh
-- Installing: /usr/local/lib/pkgconfig/gflags.pc
-- Installing: /home/hri/.cmake/packages/gflags/e5f7ce61772240490d3164df06f58ce9

자, 그리고 마지막 단계:

Step4:


입력:
sudo ldconfig

이것은 동적 링크 라이브러리를 불러오는 것을 뜻합니다. 일반적으로 설치 소프트웨어를 컴파일할 때 동적 링크 라이브러리의 오류가 발생하면 수동으로 불러와야 합니다!자, 다시 프로그램을 실행해 보니 위의 첫 번째 오류가 없어졌지만, 두 번째 오류가 발생했습니다.

오보 (2)


./curve_fitting: symbol lookup error: /usr/local/lib/libglog.so.0: undefined symbol: _ZN6google14FlagRegistererC1ISsEEPKcS3_S3_PT_S5_
이때 발견, 원래 위의 gflag와 같은 오류!그럼 계속 고양이처럼 고쳐!

오보 (2) 해결 방법


Step1: glog 가져오기

git clone https://github.com/google/glog

Step2: glog 컴파일


순서대로 명령을 실행하세요. (줄마다 단독 명령입니다!)
cd glog
./autogen.sh
sudo CFLAGS="-fPIC" ./configure
mkdri build
cd build
cmake -D BUILD_gflags_LIBS=ON  -D BUILD_SHARED_LIBS=ON -D BUILD_gflags_nothreads_LIBS=ON -D GFLAGS_NAMESPACE=ON ..
make -j4
sudo make install

--------------------------------------그래, 완벽하게 해결했어!libglog도 봤어요.so의 공유 라이브러리입니다!그리고 14강 6장의 절차를 집행하여 완벽하게 통과합니다!

좋은 웹페이지 즐겨찾기