2013-02-12 15 views
5

Tôi đang sử dụng iOS 6.1 và XCode 4.6OpenCV 2.4.4 và Tesseract 3.02.02 Đừng liên kết với nhau

Tôi có một vấn đề, OpenCV cần phải được biên dịch với libC++ (LLVM C++ 11), trong khi Tesseract 3.02.03 cần được biên dịch bằng "trình biên dịch mặc định".

Làm cách nào để khắc phục sự cố này. tại thời điểm này tôi có thể biên dịch và liên kết chỉ Nếu tôi nhận xét mã OpenCV hoặc nhận xét ra mã OCR. không thể làm cho cả hai làm việc cùng nhau.

Bất kỳ ý tưởng nào ??

+0

để được thêm accourare, OpenCV yêu cầu dự án iOS của tôi để được biên dịch với: libC++, trong khi Tesseract yêu cầu "Trình biên dịch mặc định". – Shvalb

Trả lời

2

Tôi không phải là một chuyên gia với C++ nhưng tôi có cùng một vấn đề và do một số thử nghiệm và lỗi và rất nhiều tìm kiếm trên internet tôi nghĩ rằng tôi đã giải quyết được.

Như tôi đã hiểu, vấn đề là opencv và tesseract được xây dựng với các thư viện chuẩn khác nhau. Các opencv mới nhất được xây dựng với libC++ trong khi tesseract được xây dựng với stdlibC++

Giải pháp là xây dựng lại một trong số chúng để cả hai đều sử dụng cùng một thư viện chuẩn. Tôi quyết định biên dịch lại tesseract và làm theo các hướng dẫn được tìm thấy here tham chiếu đến build script được sử dụng để xây dựng thư viện.

Tôi sửa đổi tập lệnh này (một lần nữa, bằng cách dùng thử một lỗi, không thực sự chắc chắn đây là cách tốt nhất) để sử dụng trình biên dịch clang ++ (CXX="/usr/bin/clang++") và sử dụng libC++ (CXXFLAGS="$CFLAGS -stdlib=libc++") và nó biên dịch (albiet với một số cảnh báo). Bạn cũng có thể cần sao chép một số tiêu đề vì tập lệnh dường như không sao chép tất cả.

Sau đó, chỉ sử dụng thư viện này thay vì thư viện đã tải xuống trong dự án iOS của bạn (nhớ thay đổi trở lại libC++ trong cài đặt xây dựng) và mọi thứ sẽ biên dịch và liên kết tốt.

Cho đến nay dường như hoạt động chính xác trong thời gian chạy.

+0

Dường như hoạt động. Tôi vẫn đang thử nghiệm cấu hình này, nhưng có vẻ tốt. Cám ơn! – Sebastian

+1

bạn có muốn tải các tệp thư viện của mình lên github để những người khác chỉ cần đưa vào chứ không phải biên dịch lại không? –

+0

@barduck Bạn có thể chia sẻ thư viện được biên soạn không? Tôi đã làm tất cả những điều đó nhưng vẫn gặp vấn đề với việc biên dịch. – Shmidt