확인. 그래서 여기에 간다. 저는 현재 OpenCV라는 동적 라이브러리를 추가하고 Xcode 프로젝트에 사용하려고합니다. 먼저 .pkg를 사용하여 MacPorts를 설치했습니다. 그런 다음 터미널을 열고 "sudo port install opencv"를 실행했습니다. 그런 다음 MacPorts는 모든 종류의 종속성 (FFMPEG/etc)을 설치 한 다음 OpenCV를 .dylib 파일의 "/ opt/local/lib"폴더와 헤더 파일의 "/ opt/local/include"폴더에 설치했습니다. 그런 다음 Xcode를 열고 명령 행 유틸리티 응용 프로그램 프로젝트를 열었습니다. 내 프로젝트에 그룹을 추가하고 내부에 모든 .dylib 파일을 추가했습니다. (동적 라이브러리에 대한 참조라고 생각하지만, 확실하지 않습니다 - 저는 초보자입니다 - 첫 번째 프로그래밍 언어 인 C++을 배웠습니다. , 단지 1 주일 전 ") 그 후 Xcode 내에서 프로젝트 파일을 클릭하고 설정을 빌드 한 다음"검색 경로 "탭의"헤더 검색 경로 "를/include 폴더로 변경했습니다 라이브러리 검색 경로는 이미 .dylib 파일을 추가 한 이후로 이미/lib 폴더로 설정되어있었습니다 (필자는 그렇게 생각합니다). 어쨌든, 다음 샘플 코드를 opencv 웹 사이트에서 복사하여 내 메인 .cpp 파일은 여부 나의 서재 작품을 테스트합니다.Xcode로 동적 라이브러리 추가 및 사용
// ****************************** 샘플 코드 *********************************************
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
if(argc != 2) {
cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
return -1; }
Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE);
if(! image.data) {
// Read the file
// Check for invalid input
cout << "Could not open or find the image" << std::endl ;
return -1; }
namedWindow("Display window", CV_WINDOW_NORMAL);// Create a window for display.
imshow("Display window", image); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0; }
// ******************** 샘플 파일 코드의 END **************** 내가 모든 것을 한 후에 내가 실행에 충돌하기 전에 ******************************
하고, 나는 그것이 중요하다고 생각 Xcode는 헤더 파일을 찾을 수 없다는 불평을하지 않았으며 또한 라이브러리가 추가해야하는 새로운 기능에 대한 구문 오류에 대해 불평하지 않았습니다. 즉, main.cpp 파일에 강조 표시된 오류가 없습니다. 그러나 Xcode 내부의 Run 버튼을 누르면 모든 오류가 표시되기 시작했습니다. 엑스 코드에서
************** 오류 나는 실행을 공격 한 후 **************** : 여기가 생성 된 모든 오류는 ******************
바보 같은 스택 오버플로 이미지를 게시 할 수 없으므로 여기 링크가 있습니다. 오류 사진 :
***************** 블록의 END ******************** ** ** ** ** ** ** ** ** ** 이 시점에서 내가 뭘하고 있는지 실마리가 없으며 완전히 잃어버린 것입니다. 프로젝트에 동적 라이브러리를 추가 할 때 올바른 단계를 따르지 않았습니까? 아, 그리고 그게 뭔지 잊었지만, 어쨌든 Xcode는 의미 론적 문제를 무시했습니다. (어떻게했는지 또는 내가 한 일을 기억하지 못합니다.) 일단 의미 문제가 무시되면 남아있는 유일한 오류가있는 것처럼 보입니다. 뭔가 "Mach-O Linker Error"와 관련이 있습니다 : "undefined symbols .... architecture/etc"의 줄에 무엇인가를 말하고 나서 정의되지 않은 심볼이 내가 부르고있는 라이브러리 함수 중 하나라고 말합니다 내 main.cpp 파일. 그러나 모든 것을 삭제하고 다시 시작한 이후로 그 오류는 더 이상 발생하지 않습니다. 그래서 지금 나는 유일한 오류가 그림의 것들입니다. 그래서 제발 도와주세요! 나는 절대적으로 길을 잃었으며 지금은 수 주간 연구를 해왔지만, 내가 가진 문제는 내가 무엇을 찾고 있는지, 어떤 질문을해야하는지에 대한 단서가 없다고 생각한다. 위에 나열된 단계는 내가 수행 한 것입니다. 모든 통찰력을 많이 주시면 감사하겠습니다. 미리 감사드립니다 !!!!!!
____________EDIT___________________
그래서 다시 위의 단계를 반복하지만,이 시간이 오류를 얻을 : LD/사용자/야쉬가/라이브러리/개발자/엑스 코드/DerivedData/OpenCVOptTEST-adchdkiefzmijfhahwtzcfqarzkw/구축/제품/디버그/OpenCVOptTEST 정상 x86_64의를 cd "/ Users/Yash/Coding Folder/OpenCVOptTEST" setenv MACOSX_DEPLOYMENT_TARGET 10.8 /응용 프로그램/개발자/도구/XcodeDefault.Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ++ -arch x86_64 -isysroot/응용 프로그램 /Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/Yash/Library/Developer/Xcode/DerivedData/OpenCVOptTEST-adchdkiefzmijfhahwtzcfqarzkw/빌드/제품/디버그 -L/opt/local/lib -F/사용자/Yash/라이브러리/개발자/Xcode/DerivedData/OpenCVOptTEST-adchdkiefzmijfhahwtzcfqarzkw/빌드/제품/디버그 -filelist/Users/Yash /Library/Developer/Xcode/DerivedData/OpenCVOptTEST-adchdkiefzmijfhahwtzcfqarzkw/Build/Intermediates/OpenCVOptTEST.build/Debug/OpenCVOptTEST.build/Objects-normal/x86_64/OpenCVOptTEST.LinkFileList -mmacosx-version-min = 10.8 -stdlib = libC++ -lopencv_calib3d .2.4.6 -lopencv_contrib.2.4.6 -lopencv_core.2.4.6 -lopencv_features2d.2.4.6 -lopencv_flann.2.4.6 -lopencv_gpu.2.4.6 -lopencv_highgui.2.4.6 -lopencv_imgproc.2.4.6 -lopencv_legacy.2.4 .2 -lopencv_ml.2.4.6 건축 x86_64에 대한 2.4.6 -lopencv_video.2.4.6 -lopencv_videostab.2.4.6 -o/사용자/야쉬/라이브러리/개발자/엑스 코드/DerivedData/OpenCVOptTEST-adchdkiefzmijfhahwtzcfqarzkw/구축/제품/디버그/OpenCVOptTEST정의되지 않은 문자 : 참조 : main.o에서 참조하는 "cv :: namedWindow (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, int)"참조 : "cv :: imread (std :: __1 :: basic_string, std :: __ 1 :: allocator> const &, int) "에서 참조 : _main in main.o "cv :: imshow (std :: __ 1 :: basic_string, std :: __ 1 :: 할당 자> const &, cv :: _ InputArray const &) "에서 참조 된 : _ main.o를 LD의 주요 : 기호가없는 아키텍처 x86_64의 그 소리에 대한 발견 : 오류 : 링커 명령은 애플의 documentation for working with Dynamic Libraries