Como adicionar as bibliotecas necessárias a este Makefile específico?

1

Eu estou tentando executar algum código que requer openCV. A questão é que para compilar este código e adicionar os recursos específicos do openCV que eu preciso, eu tenho que adicionar essas bibliotecas ao Makefile dado. Eu sei que ao compilar meu código openCV através da linha de comando eu posso apenas fazer

g ++ opencv.cpp -lopencv-core -lopencv_imgproc -lopencv_highgui -o opencv

(Ou alguma ligeira variante também)

Agora que eu tenho esse Makefile, estou um pouco perdido sobre exatamente onde preciso adicionar

-lopencv_core -lopencv_imgproc -lopencv_highgui

Meu palpite é que alguns desses três já podem estar vinculados, mas não todos os três.

Alguém poderia me ajudar?

O Makefile em questão: link Ou devo modificar o arquivo CMakeLists.txt original?

fonte: link

Obrigado!

EDITAR:

Na verdade, por alguma razão, não encontra essas bibliotecas. Quando eu compilo meu código eu recebo um monte de erros de vinculação "referência xyz indefinida". Porque eu preciso adicionar esses 3 libs de alguma forma. Sempre que eu escrevo código openCV para outro projeto, eu sempre compilo a partir da linha de comando e adiciono todas as dependências / libs / ... manualmente.

Até agora eu também tentei modificar o CMakeCache.txt usando:

cmake -DCMAKE_EXE_LINKER_FLAGS="- lopencv_core -lopencv_imgproc -lopencv_highgui" ../ eos

resultado:

yalishanda@yalishanda-thinkpad-x200:~/Desktop/John/1/2/software/computerVision/myTests/2/build$ cmake -DCMAKE_EXE_LINKER_FLAGS="-lopencv_core -lopencv_imgproc -lopencv_highgui" ../eos
cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by cmake)
-- Options:
-- EOS_BUILD_EXAMPLES: ON
-- EOS_BUILD_CERES_EXAMPLE: OFF
-- EOS_BUILD_UTILS: OFF
-- EOS_BUILD_DOCUMENTATION: OFF
-- EOS_GENERATE_PYTHON_BINDINGS: OFF
-- EOS_GENERATE_MATLAB_BINDINGS: OFF
-- Found OpenCV: /usr/local (found version "3.2.0") found components:  core 
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
-- Boost found at /usr/include
-- Eigen3 found: TRUE, version: 3.3.3
-- Eigen3 include dir found at /home/yalishanda/Desktop/John/1/2/software/computerVision/myTests/2/eos/3rdparty/eigen
-- OpenCV 3.x detected - including imgcodecs for compatibility
-- Found OpenCV: /usr/local (found suitable version "3.2.0", minimum required is "3") found components:  core imgproc imgcodecs 
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   program_options
-- Boost found at /usr/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/yalishanda/Desktop/John/1/2/software/computerVision/myTests/2/build
yalishanda@yalishanda-thinkpad-x200:~/Desktop/John/1/2/software/computerVision/myTests/2/build$ make
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
[ 25%] Linking CXX executable myFaceFit
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
CMakeFiles/myFaceFit.dir/myFaceFit.cpp.o: In function 'main':
myFaceFit.cpp:(.text+0x20da): undefined reference to 'cv::imshow(cv::String const&, cv::_InputArray const&)'
myFaceFit.cpp:(.text+0x2102): undefined reference to 'cv::waitKey(int)'
collect2: error: ld returned 1 exit status
examples/CMakeFiles/myFaceFit.dir/build.make:100: recipe for target 'examples/myFaceFit' failed
make[2]: *** [examples/myFaceFit] Error 1
CMakeFiles/Makefile2:119: recipe for target 'examples/CMakeFiles/myFaceFit.dir/all' failed
make[1]: *** [examples/CMakeFiles/myFaceFit.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

e

CMAKE_SHARED_LINKER_FLAGS também:

$ cmake -DCMAKE_SHARED_LINKER_FLAGS="-lopencv_core -lopencv_imgproc -lopencv_highgui" ../eos
cmake: /home/john/anaconda2/lib/libcurl.so.4: no version information available (required by cmake)
-- Options:
-- EOS_BUILD_EXAMPLES: ON
-- EOS_BUILD_CERES_EXAMPLE: OFF
-- EOS_BUILD_UTILS: OFF
-- EOS_BUILD_DOCUMENTATION: OFF
-- EOS_GENERATE_PYTHON_BINDINGS: OFF
-- EOS_GENERATE_MATLAB_BINDINGS: OFF
-- Found OpenCV: /usr/local (found version "3.2.0") found components:  core 
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
-- Boost found at /usr/include
-- Eigen3 found: TRUE, version: 3.3.3
-- Eigen3 include dir found at /home/yalishanda/Desktop/john/1/2/software/computerVision/myTests/2/eos/3rdparty/eigen
-- OpenCV 3.x detected - including imgcodecs for compatibility
-- Found OpenCV: /usr/local (found suitable version "3.2.0", minimum required is "3") found components:  core imgproc imgcodecs 
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   program_options
-- Boost found at /usr/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/yalishanda/Desktop/john/1/2/software/computerVision/myTests/2/build
yalishanda@yalishanda-thinkpad-x200:~/Desktop/john/1/2/software/computerVision/myTests/2/build$ make
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
[ 25%] Linking CXX executable myFaceFit
/usr/bin/cmake: /home/yalishanda/anaconda2/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
CMakeFiles/myFaceFit.dir/myFaceFit.cpp.o: In function 'main':
myFaceFit.cpp:(.text+0x20da): undefined reference to 'cv::imshow(cv::String const&, cv::_InputArray const&)'
myFaceFit.cpp:(.text+0x2102): undefined reference to 'cv::waitKey(int)'
collect2: error: ld returned 1 exit status
examples/CMakeFiles/myFaceFit.dir/build.make:100: recipe for target 'examples/myFaceFit' failed
make[2]: *** [examples/myFaceFit] Error 1
CMakeFiles/Makefile2:119: recipe for target 'examples/CMakeFiles/myFaceFit.dir/all' failed
make[1]: *** [examples/CMakeFiles/myFaceFit.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
    
por gihidoma 28.07.2017 / 20:16

0 respostas