를 사용하여 링크 라이브러리
파일 /usr/lib/gstreamer-0.10/libgstffmpeg.so
이 CMakeLists.txtfind_library 또는 link_directory 또는 find_package? 더 좋은 방법은 무엇입니까? 오류 - 감안할 때 cmake
만들기 변경
접근 1find_library()
find_library (GST_FFMPEG 명칭 gstffmpeg 된 경로는/usr/lib/gstreamer-0.10 /)
...
target_link_libraries (MyLibraryOrMyExe cutable $ {GST_FFMPEG})
나는 위의 구성 (방법 1)와 make
을 실행 , 내가받을 다음과 같은 오류
/빈/LD : 경고 : libvpx.so.1, /usr/lib/i386-linux-gnu/libavcodec.so.53에서 필요하지 않음 (-rpath 또는 -rpath-link를 사용해보십시오)
/bin/ld : 경고 : libschroedinger-1.0.so.0 /usr/lib/i386-linux-gnu/libavcodec.so.53에 필요하지 않습니다 (-rpath 또는 -rpath-link를 사용해보십시오)
/bin/ld : 경고 : libgsm.so.1 /usr/lib/i386-linux-gnu/libavcodec.so.53에 필요없는이 없습니다 (-rpath 또는 -rpath-link를 사용하십시오)
추가 된 라이브러리가 링크되지 않은 다른 라이브러리에 의존하는 것처럼 보입니다!/usr/lib에 3 .so 이상의 파일이 있습니다. 따라서 1에 접근하는 가능한 해결책은 find_library()
함수를 세 개 더 추가하는 것입니다. 권리 ? This question이 가능한 솔루션
- Q1 이상에서 발견 된 문제를 탐구 임니다
이 될 수 있습니다. 종속 라이브러리를 찾아 링크하는 노력을 아끼지 않는 다른 방법이 있습니까? 모든 의존 라이브러리가 자동으로 링크되는 접근법은 무엇입니까?
접근법 2link_directories()
link_directories (/usr/lib/gstreamer-0.10/)
target_link_libraries (MyLibraryOrMyExecutable gstffmpeg)
나는 위의 구성으로 make
를 실행 (접근 2), 다음 오류가 발생합니다.
빈은 : -lgstffmpeg
- Q2를 찾을 수 없습니다. 위의 방법 2로 문제를 해결하는 방법은 무엇입니까?
- Q3. 어느 접근법 1 또는 2가 더 낫습니까?
P. cmake에 대한 문서를 읽으려고했지만 SO에서 검색했지만 내 문제를 해결할 수 없습니다. 나는 두 가지 방법을 시도하고 그들이