0

I compiled and run C++ with OpenCV code with static libs successfully. Project is working fine.

my CmakeListed.txt

cmake_minimum_required(VERSION 2.8)
PROJECT(word)  
set(OpenCV_DIR "/home/medo/opencv/share" CACHE PATH "docs") 
FIND_PACKAGE( OpenCV REQUIRED ) 
INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} ) 
ADD_EXECUTABLE(wordx Source.cpp) 
TARGET_LINK_LIBRARIES (wordx ${OpenCV_LIBS})

Now I try to run the project on PHP Linux host. It gives me following errors:

"./wordx: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./wordx)"
[1]=>
"./wordx: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./wordx)"
[2]=>
"./wordx: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found 
(required by ./wordx)"
[3]=>
 "./wordx: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./wordx)"

I searched on Google and found:

set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")

I add above to project:

cmake_minimum_required(VERSION 2.8)
PROJECT(word)  
set(OpenCV_DIR "/home/medo/opencv/share" CACHE PATH "docs") 
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc  -static-libstdc++")
FIND_PACKAGE( OpenCV REQUIRED ) 
INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} ) 
ADD_EXECUTABLE(wordx Source.cpp) 
TARGET_LINK_LIBRARIES (wordx ${OpenCV_LIBS})

My code size increased but when I run the project, it gives me same error.

Jazz
  • 916
  • 1
  • 8
  • 22
medo
  • 479
  • 3
  • 9
  • 24
  • Give absolute path to the libs you're using e.g: `/usr/lib/libopencv_core.a` – zindarod Sep 04 '17 at 22:45
  • opencv libs work without problem just those ` /usr/lib64/libstdc++.so.6:` and `/lib64/libc.so.6` – medo Sep 04 '17 at 22:47
  • Check this link: https://stackoverflow.com/questions/26304531/compiling-with-static-libgcc-static-libstdc-still-results-in-dynamic-depende – zindarod Sep 04 '17 at 23:04

0 Answers0