우리는 C++로 작성된 Windows 애플리케이션을 가지고 있습니다.이 애플리케이션의 일부는 Mac OS X로 포팅하려고합니다. 우리의 목표는 비즈니스 로직을 일부 라이브러리로 랩핑하고 Cocoa 레이어를 빌드하는 것입니다 컨트롤러 및 GUI 상단. 우리는 아마도 동일한 라이브러리를 사용하는 몇 개의 작은 응용 프로그램을 가지고있을 것이고 그래서 우리의 첫 번째 생각은 더 좋은 방법이없는 한 C++ 코드 용 동적 라이브러리를 사용하는 것이라고 생각할 것입니다. 그러나이를 달성하는 데 몇 가지 문제가 있습니다. 우리의 동적 라이브러리는 괜찮습니다 (적어도 그렇게 보입니다). 우리는 우리의 앱에서 링크하는 .dylib 파일을 얻습니다. 문제는 우리 앱이 단순히 우리가 포함하려고하는 .h 파일을 찾을 수 없다는 것입니다. .h 파일을 내보내고 설치 이름을 확인하고 라이브러리가 올바른 디렉토리에 있는지 확인했습니다. 또한 동적 라이브러리를 만들고 사용하기위한 Apple의 가이드를 따라 갔으며 우리가 놓친 특별한 단계도 발견하지 못했습니다. 여기OS X에서 동적 라이브러리 생성 및 사용하기
내 질문은 두 부분입니다 :
- 우리는 우리가 다른 어떤 전에 시도해야 인터페이스 (즉 .H 파일)을 노출하는 수단이되는 누락 될 수있는 몇 가지 명백한 단계가 있습니까?
- 우리는이 프로젝트에서 계승 한 엉터리 C++ 코드에 오류가있을 것이라고 생각합니다. 예를 들어, .h 파일에 직접 작성된 많은 논리 (메서드 구현)가 있고 경우에 따라서는 .cpp 파일도 전혀 없습니다. 따라서 .h 파일은 단지 인터페이스의 설명이 아닙니다. 우리 앱이 라이브러리에서 .h 파일을 찾을 수 없기 때문에 이것은 (엄숙한) 문제가 아닐 수 있습니다. 포팅해야하는 코드 기반이 실제로 크고 (평소와 같이) 마감일이 가까워지기 때문에 많은 코드를 다시 작성할 필요가 없기를 바랍니다.
추 신 : 우리는 지금까지 Xcode 4.2에서만 작업 해 왔으며 아직 명령 행 도구로 시도하지 않았습니다.
프로젝트/대상의 빌드 설정에서 라이브러리 포함 파일의 경로 (헤더 검색 경로 또는 사용자 헤더 검색 경로)를 지정했는지 확인하십시오. –
헤더 파일이 (파일 시스템에서) 예상되는 위치에 있는지 확인하십시오. – arne
실제로이 작업은 순수한 절망에서 끝났습니다. 그러나 이것이 정말로 필요한가? 즉, 라이브러리를 배포 할 때 헤더 파일도 배포해야한다는 의미입니다. 따라서 .dylib는 완전히 자체 포함 된 Windows의 .dll 파일과 비슷한 방식으로 작동하지 않습니다. – pajevic