2013-07-16 3 views
3

저는 Mac에서 10.7.5, xcode 4.6.2에서 OpenCV 2.4.3 라이브러리로 작업하고 있습니다. 터미널에서 cmake 파일을 사용하여 빌드 디렉토리를 만드는 과정을 거쳤으며 다운로드를 수행했습니다. 라이브러리를 찾을 수 없습니다. OpenCV

내가 엑스 코드에 .dylib 파일을 추가 헤더 경로를 변경, libstdC++를 C++ 라이브러리 변경,하지만 난 컴파일 할 때이 오류가있어 : 나는이 프로젝트에 추가 libopencv_calib3d.2.4.3.dylib

ld: library not found for -lopencv_calib3d.2.4.3 
clang: error: linker command failed with exit code 1 

그래서 더이를 그 밖에 필요한 아이디어. 아이디어는 없니?

+0

개발중인 아키텍처에 "라이브러리 경로"와 같은 것이 있습니까? http://stackoverflow.com/questions/9412296/ld-library-path-the-shared-lib-path-in-linux 컴파일러가 gcc/g ++에 대해 -L 플래그를 허용합니까? http://linux.die.net/man/1/g++ – Antonio

+0

링크를 제공해 주셔서 감사합니다. 나는 "Build Machine의 기본 아키텍처"로 내 아키텍처를 가지고 있으며 Default로 컴파일러를 가지고 있습니다. -L을 다른 C++ 플래그에 추가하면 같은 오류가 발생합니다. -L은 내 C++ 라이브러리에서 옵션이 아니지만 기본 컴파일러를 추가하고 변경할 수 있습니까? 죄송합니다. –

+0

명확하지는 않지만'-L directory_where_your_library_is'을 사용해야합니다. – Antonio

답변

1

"make back-end"가 Cmake 인 경우 사용법을 고수해야합니다. Xcode의 로컬 구성 변경 사항은 cmake가 재실행 될 때 (예를 들어 사용자가 변경 한 후에 발생) 기묘한 빌드 오류를 생성하고 사용자가 수동으로 변경 한 사항을 모두 기억해야 할 때 "비밀리에"덮어 쓸 수 있습니다.

생성 된 프로젝트가 어디에서 opencv를 찾을지 모르는 것 같습니다. 당신을 가정

당신이 당신의 CMakeLists.txt에

link_directories(/opt/local/lib) 

을 말하는 줄을 추가해야 MacPorts를를 사용하는을 OpenCV를 설치했습니다.

또한 당신은 매우 특별한 이유가없는 한이를 우회 (opencv_calib3d 대신 opencv_calib3d.2.4.3에 연결해야합니다 (당신이 양조를 사용하여 설치 한 경우, 또는 수동으로 당신의 컴파일 된 라이브러리에 /usr/local/lib에 대한 /opt/local/lib 또는 경로를 교체를 컴파일) 하지만 대개 설치 프로그램에서 이상한 점이 있음을 의미합니다.)

이미 알고있는 최종 포인터 : 이미 Cmake를 사용하고 있으므로 TARGET_LINK_LIBRARIES (...)를 사용하여 링크 할 라이브러리를 추가해야합니다. Cmake에서 수동으로 Xcode에 추가하지 않고 (이전의 인수를 참조).

+0

OP가 자신의 프로그램을 빌드하기 위해 cmake를 사용하고 있다고 생각하지 않습니다. 그는 cmake를 사용하여 OpenCV – Antonio

+0

을 만들었지 만 어디에서 link_directory를 추가 할 수 있습니까? 또한 파일을 추가 할 때 Calib3d가 추가 된 후에 Calib3d.2.4.3이라고 표시됩니다. –

+1

@AndreaF 죄송합니다. 설정을 잘못 이해했습니다. 지금 당장은 실제 프로젝트에 make를 사용하지 않으므로 대부분의 요점은 적용되지 않습니다. 대신이 솔루션을 살펴보십시오. http://stackoverflow.com/questions/11726837/why-cant-i-compile-this-command-line-opencv-mac-application?rq=1 – kamjagin

관련 문제