Hi

I'm trying to bind with PInvoke native c++ library for iPad. The library is a part of the bigger project and is ported from Windows Mobile to iOS (iPad to be more precise). The c++ code was fixed to compile with g++ in MonoDevelop and those *.h and *.cpp files were added to Xcode project which compiled. In the next step small shell script did shared libs for iOS (x86 simulator and arm7 for iPad) together with fat lib. Library is added in the root of the MonoTouch project as content and with property copy to output dir for PInvoke. The app ran on 2 Macs, but had problems DLL not found exception on third Mac - and this one
had break on all exceptions turned on.

Further investigation (adding -v -Wall options in mtouch Extra arguments for gcc) showed that mtouch does not copy this static lib to temp folder. ld and collect scream that file is not found.

As a test I took a lib from monotouch-samples and could bind it, but this is objective-c.

What could cause mtouch not to copy .a file to tmp folder (/var....) during linking

thanks in advance

Merry Christmas to all

mel

More details:

1. c++ library ported from WinCE
2. c++ fixes for g++ with MonoDevelop
3. Xode project creaed after fixes - compiles OK.
4. script that builds static libraries + fat library
5. PInvoke

[DllImport("libiPadNative.a")]
public static extern void RotateFromToIntAccHelper16BitZoom(short* srcPointer, int srcWidth, int srcHeight, int srcOriginX, int srcOriginY,

6. mtouch options

-cxx -gcc_flags "-v -Wall -L${ProjectDir} -liPadNative -force_load ${ProjectDir}/libiPadNative.a"

NOTE: added -v -Wall to get more verbose output.


7. in MD - Excepion only if break on all Exceptions is enabled

System.DllNotFoundException has been thrown

System.DllNotFoundException: libiPadNative.a
at (wrapper managed-to-native) iFly.ImageUtility:dll_BlendPerPixelAlpha565 (int16*,int16*,byte[2],int,int,int,int,int,int,int,int,int) at iFly.ImageUtility.AlphaBlend (System.Drawing.Bitmap destImage, System.Drawing.Imaging.BitmapData destData, System.Drawing.Bitmap srcImage, System.Drawing.Imaging.BitmapData srcData, Int32 destX, Int32 destY, Int32 alphaFactor, System.Byte[,] alphaFactors) [0x0000b] in /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.Core/##Core/#Drawing/ImageUtility/ImageUtility.Blending.cs:35 at iFly.ImageLayerManager.Combine (Boolean showCenterMark) [0x00364] in /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.Core/##Core/#Drawing/ImageLayerManager.cs:309 at iFly.AviationMap.CombineAndDraw () [0x00026] in /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.Core/##Core/AviationMap/AviationMap.cs:745 at iFly.AviationMap.RenderAviationMap () [0x00248] in /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.Core/##Core/AviationMap/AviationMap.cs:1489


8. Added LinkWith atribute
-> does not compile (link errors)
-> Liker errors

[assembly: LinkWith ("libiPadNative.a", LinkTarget.Simulator | LinkTarget.ArmV6 | LinkTarget.ArmV7, ForceLoad = true)]

even w/o armv6

[assembly: LinkWith ("libiPadNative.a", LinkTarget.Simulator | LinkTarget.ArmV7, ForceLoad = true)]


Just for test sake:

[assembly: LinkWith ("libXMBindingLibrarySampleUniversal.a", LinkTarget.Simulator | LinkTarget.ArmV6 | LinkTarget.ArmV7, ForceLoad = true)]


9. Build output -

Compiling to native code
/Developer/MonoTouch/usr/bin/mtouch -sdkroot "/Applications/Xcode.app/Contents/Developer" -v --cache "/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/obj/Debug/mtouch-cache" --nomanifest --nosign -sim "/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app" -r "/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.Core/bin/iPhoneSimulator/Debug/iFlyCore.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/MonoTouch.Dialog-1.dll" -r "/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll" -debug -profiling -nolink -sdk "6.0" -targetver "3.2" --sgen --abi=i386 "-cxx" --gcc_flags "\"-v\" \"-Wall\" \"-L/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad\" \"-liPadNative\" \"-force_load\" \"/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/libiPadNative.a\"" "/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.exe" MonoTouch version 6.0.7 using framework: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk Copied /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.exe to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/iFlyiPad.exe Copied /Developer/MonoTouch/usr/lib/mono/2.1/mscorlib.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/mscorlib.dll Copied /Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/monotouch.dll Copied /Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/System.Core.dll Copied /Developer/MonoTouch/usr/lib/mono/2.1/System.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/System.dll Copied /Developer/MonoTouch/usr/lib/mono/2.1/Mono.Security.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/Mono.Security.dll Copied /Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/System.Xml.dll Copied /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/iFlyCore.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/iFlyCore.dll Copied /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/XMBindingLibrary.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/XMBindingLibrary.dll Copied /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/ICSharpCode.SharpZipLib.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/ICSharpCode.SharpZipLib.dll Copied /Developer/MonoTouch/usr/lib/mono/2.1/MonoTouch.Dialog-1.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/MonoTouch.Dialog-1.dll Copied /Developer/MonoTouch/usr/lib/mono/2.1/System.Json.dll to /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/bin/iPhoneSimulator/Debug/iFlyiPad.app/System.Json.dll Generated /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/main.i386.m /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=3.2 -arch i386 -std=c99 -I/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -c /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/main.i386.m -o /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/obj/Debug/mtouch-cache/main..i386.cache.w7REfNsRQxmZBp8EwXCMx5veT0s=.o /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ -Wl,-no_pie -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=3.2 -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/obj/Debug/mtouch-cache/main..i386.cache.w7REfNsRQxmZBp8EwXCMx5veT0s=.o -o /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/iFlyiPad -framework CFNetwork -framework Foundation -framework GameKit -framework MapKit -framework MediaPlayer -framework MessageUI -framework OpenGLES -framework StoreKit -framework UIKit -framework AddressBookUI -framework SystemConfiguration -framework AddressBook -framework AudioToolbox -framework AVFoundation -framework QuartzCore -framework CoreGraphics -framework CoreLocation -framework MobileCoreServices -framework Security -framework CoreData -framework ExternalAccessory -weak_framework AssetsLibrary -weak_framework Accounts -weak_framework CoreBluetooth -weak_framework CoreTelephony -weak_framework EventKit -weak_framework EventKitUI -weak_framework CoreMotion -weak_framework GLKit -weak_framework iAd -weak_framework NewsstandKit -weak_framework Social -weak_framework Twitter -weak_framework PassKit -weak_framework CoreImage -weak_framework CoreText -weak_framework ImageIO -weak_framework CoreMedia -weak_framework CoreMIDI -weak_framework CoreVideo -weak_framework AdSupport -weak_framework QuickLook -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -u _monotouch_create_managed_ref -u _monotouch_release_managed_ref -liconv -lmonosgen-2.0 -lmonotouch-sgen -L/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -lmono-profiler-log -u _mono_profiler_startup_log -u _catch_exception_raise -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libXMBindingLibrarySampleUniversal.a -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libiPadNative.a -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libXMBindingLibrarySampleUniversal.a "-v" "-Wall" "-L/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad" "-liPadNative" "-force_load" "/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/libiPadNative.a"
Process exited with code 1, command:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ -Wl,-no_pie -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=3.2 -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/obj/Debug/mtouch-cache/main..i386.cache.w7REfNsRQxmZBp8EwXCMx5veT0s=.o -o /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/iFlyiPad -framework CFNetwork -framework Foundation -framework GameKit -framework MapKit -framework MediaPlayer -framework MessageUI -framework OpenGLES -framework StoreKit -framework UIKit -framework AddressBookUI -framework SystemConfiguration -framework AddressBook -framework AudioToolbox -framework AVFoundation -framework QuartzCore -framework CoreGraphics -framework CoreLocation -framework MobileCoreServices -framework Security -framework CoreData -framework ExternalAccessory -weak_framework AssetsLibrary -weak_framework Accounts -weak_framework CoreBluetooth -weak_framework CoreTelephony -weak_framework EventKit -weak_framework EventKitUI -weak_framework CoreMotion -weak_framework GLKit -weak_framework iAd -weak_framework NewsstandKit -weak_framework Social -weak_framework Twitter -weak_framework PassKit -weak_framework CoreImage -weak_framework CoreText -weak_framework ImageIO -weak_framework CoreMedia -weak_framework CoreMIDI -weak_framework CoreVideo -weak_framework AdSupport -weak_framework QuickLook -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -u _monotouch_create_managed_ref -u _monotouch_release_managed_ref -liconv -lmonosgen-2.0 -lmonotouch-sgen -L/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -lmono-profiler-log -u _mono_profiler_startup_log -u _catch_exception_raise -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libXMBindingLibrarySampleUniversal.a -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libiPadNative.a -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libXMBindingLibrarySampleUniversal.a "-v" "-Wall" "-L/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad" "-liPadNative" "-force_load" "/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/libiPadNative.a"
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~67/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~67/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/collect2 -dynamic -arch i386 -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libXMBindingLibrarySampleUniversal.a -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libiPadNative.a -force_load /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libXMBindingLibrarySampleUniversal.a -force_load /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/libiPadNative.a -iphoneos_version_min 3.2 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -weak_reference_mismatches non-weak -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -u _monotouch_create_managed_ref -u _monotouch_release_managed_ref -u _mono_profiler_startup_log -u _catch_exception_raise -o /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/iFlyiPad -lcrt1.o -L/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -L/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/usr/lib -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1 -no_pie /Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/obj/Debug/mtouch-cache/main..i386.cache.w7REfNsRQxmZBp8EwXCMx5veT0s=.o -framework CFNetwork -framework Foundation -framework GameKit -framework MapKit -framework MediaPlayer -framework MessageUI -framework OpenGLES -framework StoreKit -framework UIKit -framework AddressBookUI -framework SystemConfiguration -framework AddressBook -framework AudioToolbox -framework AVFoundation -framework QuartzCore -framework CoreGraphics -framework CoreLocation -framework MobileCoreServices -framework Security -framework CoreData -framework ExternalAccessory -weak_framework AssetsLibrary -weak_framework Accounts -weak_framework CoreBluetooth -weak_framework CoreTelephony -weak_framework EventKit -weak_framework EventKitUI -weak_framework CoreMotion -weak_framework GLKit -weak_framework iAd -weak_framework NewsstandKit -weak_framework Social -weak_framework Twitter -weak_framework PassKit -weak_framework CoreImage -weak_framework CoreText -weak_framework ImageIO -weak_framework CoreMedia -weak_framework CoreMIDI -weak_framework CoreVideo -weak_framework AdSupport -weak_framework QuickLook -lz -liconv -lmonosgen-2.0 -lmonotouch-sgen -lmono-profiler-log -liPadNative -lstdc++ -lgcc -lSystem ld: file not found: /var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp27460cbf.tmp/libiPadNative.a
collect2: ld returned 1 exit status

error MT5201: Native linking failed. Please review user flags provided to gcc: "-v" "-Wall" "-L/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad" "-liPadNative" "-force_load" "/Users/mc/Desktop/src/Commercial/iFlySVN/src/iFly.iPad/libiPadNative.a"



Miljenkos-MacBook-Pro:tmp50492440.tmp mc$ pwd
/var/folders/6t/g3f6r4mx55b2vcb9z377rvzw0000gn/T/tmp50492440.tmp
Miljenkos-MacBook-Pro:tmp50492440.tmp mc$ ls -al
total 3608
drwxr-xr-x 6 mc staff 204 Dec 23 17:36 .
drwx------ 34 mc staff 1156 Dec 23 21:04 ..
-rw-r--r-- 1 mc staff 11264 Dec 23 17:36 XMBindingLibrary.dll
-rw-r--r-- 1 mc staff 1634304 Dec 23 17:36 iFlyCore.dll
-rw-r--r-- 1 mc staff 194448 Dec 23 17:36 libXMBindingLibrarySampleUniversal.a
-rw-r--r-- 1 mc staff 431 Dec 23 17:36 main.i386.m






--
Miljenko Cvjetko dipl.ing. ET
        Direktor/CEO
        Projektant rješenja/Solution Architect  
        Razvojni programer/Senior developer
        Voditelj projekta/Project Manager

IX južna obala 13
Kajzerica Zagreb
T: 385 1 7775555
M: 385 91 557 447 3
F: 385 1 7779556
e: [email protected]
w: http://holisticware.net

_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to