2013-04-06 20 views
5

Yeni bir OpenCV sürümünü mevcut bir iOS projesine dahil etmeye çalışıyorum ve XCode projem libcdC++ ve libC++/C++ 11 desteğini kullanacak şekilde ayarlandığından linker hataları yaşıyorum.OpenCV iOS için libstdC++ ile 2.4.3+?

LibC++ özelliğini etkinleştirerek hatalarını düzelten birkaç kişi daha gördüm. Örnekler:

Ancak, libstdc kullanmak İHTİYACINIZ ++ Zaten eski stdlib ile derlenmektedir diğer 3. parti kütüphaneleri var çünkü (değiştirilemez). -stdlib = libC++ olmadan OpenCV 2.4.3+ derlemenin bir yolu var mı? CMake'e geçmek için özel bayraklar var mı? veya OpenCV kaynak kodunun ios klasöründe bulunan build_framework.py betiğine mi?

Alternatif olarak, herhangi birinin ikili versiyonu var mı? OpenCV tüm indirilebilir libC++/C + + 11 gibi görünüyor.

ios/cmake/Modules/Platform/iOS.cmake 

Değişim bu hat:

set (CMAKE_CXX_FLAGS "-stdlib=libc++ -headerpad_max_install_names -fvisibility=hidden -fvisibility-inlines-hidden") 

için:

set (CMAKE_CXX_FLAGS "-stdlib=libstdc++ -headerpad_max_install_names -fvisibility=hidden -fvisibility-inlines-hidden") 

Derleme python komut

ios/build_framework.py 
kullanarak bu dosyayı bulmak OpenCV için kaynak olarak

cevap

10

Sadece mevcut bir proje üzerinde çıkan çerçevesinde takas, 2.4.3 kaynağa denedim

gitmek

Sonra iyi olmalı, proje libstdc için ++ ve iyi çalışır C++ standardı kütüphanesini değiştirdi.

+0

Evet! Bu oldukça kolay bir çözüm. Teşekkürler. – mikewoz

1

Ayrıca OpenCV ve libstdC++ gerektiren bir 3. parti kitaplığı kullanarak bir proje üzerinde çalışıyorum.

Bu soruna yeni başlamış olduğum için, benim için çalışılan şeyi paylaşmak istedim.


Ben ekleyerek "libC++. Dylib" projeme göre çalışan OpenCV elde edebildi.

Yapı Aşamaları -> "Kütüphaneleri ile bağlantı İkili" -> "+" -> libC++ ben opencv.org gelen OpenCV 2.4.9 (opencv-2.4.9) kullanıyorum, Referans için

dylib.. OpenCV'nin dokümanlarındaki talimatlara göre ios platform build_framework.py dosyasını kullanarak derledim. Hiçbir değişiklik gerekli değildir.