Augmented reality webcame error - augmented-reality

I'm working an augmented reality application using unity 5.
I'm having an error:
Failed to load 'Assets/Plugins/QCARWrapper.dll', expected 64 bit architecture
(IMAGE_FILE_MACHINE_AMD64), but was IMAGE_FILE_MACHINE_I386. You must
recompile your plugin for 64 bit architecture.
any help?

Had the same issue, and had to install Unity 32bits to get Vuforia working the properly on my project.
You can download the latest 32 bit Unity Editor from here.
If you are looking for a specific version, here is the full list.

Related

How to upgrade application for 64 bit support for ZBarSDK

I have developed an application using ZBarSDK for Barcode. It is working fine with 32 bit support, but while I am going to upgrade it to 64 bit, it is giving linker error. Is there any tutorial or way to find out the solution ? Below are the warnings, with linker error.
duplicate symbol in:
projectpath/arm64/main.o
projectpath/arm64/AppDelegate.o
duplicate symbol in:
projectpath/arm64/main.o
projectpath/arm64/ViewController.o
etc...
This kind of warnings and linker error is there for every controller. I konw, this kind of warning comes when there are similar named class are twice or more time in source code, but if I remove 64 bit it is working fine. How to get rid of this kind of linker error.
I'm not sure about the command to merge two or more libraries, I have tried for simulator and device library. After failure, my Sr. helped me and created this attached library.
This SDK I have used before 2 years to support 64bit in my application and was working fine. Not sure about any new changes made by ZBARSDK Team
I have uploaded my SDK at https://www.dropbox.com/sh/zhbqsa0heuputlk/AAC1kDkJBxgybtwi7lnmZ9lra?dl=0
You can try this sdk.
Thanks

How to include a different library based on processor in xcode

I have an Xcode project that is 5 years old.. the project uses a custom library that is only compiled for 32 bit processors.. The project is deployed only via adhoc installations and there was no need for changing the custom library.
Today the company purchased a set of new ipads that have a 64 bit processors, therefore we had to recompile the library for arm64.
Re-included the new library in the project, and compiled for the new ipads.. and everything was perfect.
However, as expected, the project will not compile now for 32 bit ipads.
I would like to know how to link a custom library based on the processor.. I donno if I have used the proper keywords but I have already searched on this site and have found answers to do it based on (simulator/device) or even by sdk but not by processor..
example:
if processor is 32 bit use: files32/library.a
if processor is 64 bit use: files42/library.a
Thanks

Compiling and running the metal examples

It has been a while since I have used XCode, but since Apple revieled XCode 6 and the new Metal API I had to check it out.
They have released examples, e.g. a converted version of their Basic3D example. I am having problems making them compile and run, though. I had to add paths the Quatz and Metal frameworks for compilation and linking to work - thought that should have worked out of the box with build-in libraries?
Also the metal shader compilation step fails, it can not find the metal compiler. Where in XCode is that path setup?
If I ignore the shader compilation step I get an error that the application will not run on any of the simulators. Can metal based 3D applications only run on actual hardware and not in simulator mode?
According to a staff on Apple dev forums, Metal does not run in the simulator.
See: https://devforums.apple.com/message/971605#971605
If you look at other samples/app templates there is no need to explicitly link any framework, indeed everything runs out of the box.
You can't run metal on simulator but you can use this workaround so that it will still compile as long as you have a fallback for the code.
http://medium.com/#jscampbell/bare-metal-working-with-metal-and-the-simulator-70e085e3a45
I started with the hello triangle example they give you to download. It contains all the platform #if's you need to know about. I recommend you get that project and take a look.
https://developer.apple.com/documentation/metal/hello_triangle
#if TARGET_OS_SIMULATOR
#error No simulator support for Metal API. Must build for a device
#endif

Xcode issue building 64-bit app with LibX library

I'm trying to use libXl for iOS and it is giving me a linker error.
"missing required architecture x86_64"
I've changed the Architechture to standard but when I try to build for a 64 bit simulator, it gives me the linker error.
What needs to be changed to fix this error if I don't have the source code for the library?
Unfortunately, if you don't have the source code for the library and the library doesn't have a 64-bit slice, then you can't compile a 64-bit version of your app. (By the looks of things, even the commercial version of LibXL doesn't support 64-bit yet.)
Additionally, you can't mix 32 and 64 bit code/libraries within an app, I'm afraid. (If your app is 32 bit, the OS will load a 32 bit version of UIKit, etc. but that's as far as it goes.)
However, if you simply build your app as 32-bit if will run perfectly fine on 64-bit (i.e.: A7 processor+) devices.

Mono Android Monodroid Native Library DllNotFoundException

I am attempting to get a Native C/C++ library working with Monodroid in the emulator, using DllImport. I am developing mainly in Windows/Visual Studio 2010.
I have built a native C/C++ library (ZeroMQ) using the Android NDK tools, to both x86 and armeabi platforms, using a Ubuntu virtual machine. Is this correct - x86 for emulator and armeabi for the real device? (This is certainly the case on the iPhone/MonoTouch - though in that case statically linked libzmq.a file and DllImport __Internal)
I have added the x86 version of libzmq.so to my MonoDroid project under the directory structure lib\x86\libzmq.so
When I first attempted to build/deploy to the simulator, I got an error 'cannot determine abi type', so I've added x86 to the AndroidNativeLibrary Include="lib\x86\libzmq.so"> project item group. This then deployed.
I have a DllImport for the function to call [DllImport("libzmq"
I've tried libzmq.so, lib/x86/libzmq, lib/x86/libzmq.so etc, but then I call the DllImported method (running in the emulator), I always get a DllNotFoundException.
Can anyone give me some direction?
EDIT: After reading another support answer which states that the emulator uses armeabi .so libraries, I have removed the x86/libzmq and added my lib/armeabi/libzmq.so as an AndroidNativeLibrary. I also removed the project file Abi entry, and indeed the project built and deployed fine.
However, I still get a DllNotFoundException when I try to call a DllImported function. Any ideas?
Many thanks
I don't have any immediate ideas why it isn't working for you; [DllImport("zmq")] should work.
The SanityTests sample exercises the DllImport attribute.
The DllImport: https://github.com/xamarin/monodroid-samples/blob/master/SanityTests/Hello.cs#L240
The Android.mk to build libfoo.so: https://github.com/xamarin/monodroid-samples/blob/master/SanityTests/jni/Android.mk
Building libfoo.so by calling ndk-build: https://github.com/xamarin/monodroid-samples/blob/master/SanityTests/SanityTests.csproj#L82
Including libfoo.so into the .apk: https://github.com/xamarin/monodroid-samples/blob/master/SanityTests/SanityTests.csproj#L96
(This is a repeat of my reply to your email in the ZeroMQ mailing list).
This error could be caused by using an incorrect platform target in your Mono project. I'm not sure if Mono/MonoDevelop supports this, but you probably need to create an ARM platform target, as opposed to x86/x64/Any CPU.
You would experience the same errors if you tried to do P/Invoke interop between an x64-targeted assembly with an x86 native library or vice-versa.
If you're using the clrzmq bindings for bridging Mono and libzmq, you will need to create a new platform target for ARM and rebuild the bindings. The solution only defines x86 and x64 platform targets currently.
Ok, I finally got it working! For whatever reason, ZeroMQ doesn't build correctly using the current/latest NDK r7. The instructions at http://www.zeromq.org/build:android use NDK r6. I also downloaded an old version of the NDK r5b (it was the easiest old version to find a download for), and rebuilt ZeroMQ using it. Result, it now works on emulator and phone!

Resources