2010-09-10 27 views
5

Qt (şu anda ihtiyacım olan işlevsellik için Jambi'yi kullanamıyorum) çağıran bir DLL oluşturmaya çalışıyorum. Basit bir Java yöntemim var: Visual Studio Express 2010'da C projesi oluşturdum ve DLL dosyasını oluşturabiliyordum.MINGW kullanarak bir JNI DLL oluşturun

Daha sonra Qt yaratıcısında bir proje oluşturdum ve kaynaklarımı buraya taşıdım. Benim bir bilgi kadarıyla yapı yapılandırmak çalıştım ama elde ettiğin:

java.lang.UnsatisfiedLinkError: tools.proofofconcept.control.EmbedderComposite.createChild(I)I 

Benim tahminim düzgün DLL ihraç olmadığını sembolüdür. Bu ihraç semboller formatını değiştirecek

-Wl,--kill-at 

: Ben argüman şu ekledim gerektiğini

g++ -D_JNI_IMPLEMENTATION_ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -shared -mthreads -Wl -Wl,--out-implib,debug\libqt_integration.a -o debug\qt_integration.dll debug/dllmain.o debug/nativecode.o debug/qmfcapp.o debug/qwinwidget.o debug/moc_qwinwidget.o -L"c:\Qt\2010.05-rc1\qt\lib" -lQtGuid4 -lQtCored4 

cevap

6

: Ben -D_JNI_IMPLEMENTATION_ bağlayıcı arg ekledi.

2

Qt kullanıyorsanız, hangi yapılandırmanın kullanıldığından emin olun. Varsayılan olarak "varsayılan" yapılandırma kullanılır (klasör "mkspecs/default") ve win32 için bu "UnsatisfiedLinkError" neden olur.