I'm following this tutorial to compile this fork of Tesseract (an optical character recognition package) for Android. I'm at the step where I use Cygwin to build the NDK for the Tesseract Android project. I'm getting the following error when invoking ndk-build (from the tess-two directory):
c:/android-ndk-r8b-windows/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find ./obj/local/armeabi-v7a/libgnustl_static.a: Permission denied
What could be causing this error? On a side note, is there an easier way to get Tesseract up and running on Android?
Under Windows, run your command prompt as an administrator and try again:
Search->cmd.exe->Right-click->Run as Administrator
Cygwin is unnecessary--just use Windows itself. You can follow the README build instructions on the Tesseract fork. The blog you're following makes the process more complicated than necessary.
First check whether you are able to compile samples in the ndk.
And 'make' sure cygwin is installed.. Compilation problem occurs from installation or packages not yet installed. Early I worked with tesseract and have not found any problem.
Thus Tesseract OCR is used to refer a library to your project.. As example, check this . Use test-two and it worked.
Related
I installed Visual Studio C++ and Rust. Most things work fine, but building cargo-edit and cargo-clone fail. The error code hints at cmake missing but it's one of the items built ok. Windows 10 specific issue.
Thanks to help from the IRC #rust-beginners channel I found out that I needed to install cmake from cmake.org. Make sure you have it add itself to the path and restart your command prompt.
Cmake download
When I follow the instructions to get Doppl going, and I run the dopplBuild Gradle task, I get an error message about j2objc returning error code 127. What is going on?
One cause of this is not having a JDK available for command-line use on your development machine. While Android Studio can use its own JDK copy, that does not make javac and related tools available from the command line. The j2objc tool in the Doppl toolchain needs these tools available from the command line.
The simplest solution is to download and install a JDK, following whatever the normal practice is for doing so on your development machine's OS, such as downloading JDK 8 from Oracle's site and installing it. If javac runs successfully from the command line, then try running dopplBuild again and see if you get past the "error code 127" result.
When trying to install Android Studio on my Linux Laptop, I get "Unable to Run mksdcard tool" From what I can tell from searching, this is usually caused by lacking the 32 bit compatibility libraries on 64 bit Linux, however I am running it on an ARMv7 processor, using the crouton project to use Linux on my Chromebook. I have tried install the recomended packages ending in i386, but the command line returned:
Reading Package Lists... Done
Building Dependendency Tree
Reading State information... Done
E: unable to locate package [Name of package here]
E: Couldn't find any package by Regex '[Name of package]'
Does anyone know what is causing this and how I can fix it?
I've discovered a workaround.
After a little searching, I've found that we can create executable binary of the tool for the ARMv7 platform ourselves! Whupee!
Head over to GitHub and pick up the source code, mksdcard.c. Download this to wherever you'd like, but make sure you download it as mksdcard.c and not as mksdcard.c.txt, which your browser might try to do. You can always rename the file later in case you accidentally save the filename incorrectly.
Over in your chroot environment, head to the directory where you downloaded the file.
Make sure you have the gcc compilation tools installed. Try running gcc -v in an attempt to see what version of GCC you have installed. If this doesn't work, you'll need to install GCC via sudo apt-get install gcc.
Run gcc -o mkdscard mksdcard.c. This uses GCC to compile the source code into something that can be executed. After compilation has completed, you can use ./mkscard to have Linux execute the binary file, which verifies that it works.
Navigate to your Android SDK Tools directory. This is usually ~/Downloads/Android/Sdk/tools. By running ls, you'll list the files and find the version of mksdcard that your Linux distribution doesn't understand how to run. (Running ./mksdcard on this file will confirm this.)
Backup the broken binary somewhere, then delete the copy in the tools folder. (I created a backups/ directory within the Android SDK Tools folder to move it to.)
Within the directory, use rm -r mksdcard to delete the old mksdard binary.
Finally, copy your compatible binary over to take it's place, e.g. cp ~/Downloads/mksdcard . (Copies the mksdcard binary we've created to the current directory ., the Android SDK Tools folder.)
Head back over to your Android Studio installer. In the dialogue complaining about mksdcard failing, hit Retry and the installation should continue. After it's finished, be sure to apply any updates that are recommended by the environment. Enjoy!
For newer versions eg. 3.1 C4 of Android Studio running with Ubuntu on ARM32 you will also need to place mksdcard in ~/Downloads/Android/Sdk/emulator (referencing like path from Alext T.).
I searched around a fair amount and didn't see anyone else with this specific problem. I'm running Ubuntu 14.04 (amd64) and codeblocks 13.12 (from the ubuntu repositories). I've followed the directions here: "wxWidgets how to cross compile an application for windows from linux using codeblocks?" and am finding myself a bit stuck. I can successfully compile win32 CLI code and code that uses windows.h. If I create a wxwidgets project I can successfully compile it for linux, but if I try and compile it using the mingw compiler setup (per the instructions in that link) I get the following error:
unrecognized command line option "-Wno-unused-local-typedefs"
Any suggestions would be greatly appreciated!
Just remove this option, you're using a compiler too old to have it. As all -Wno-xxx options, this one just suppresses a warning, so removing it is harmless.
I'm building an android application that requires android ndk.
When i try to execute the command ndk-build.cmd, I get the following error:
"unable to find the specified path"
I've set the path variable to the path where ndk is located, but it still doesn't work...anyone knows how to solve this issue?
The binaries you need to add to the path are in the NDK itself. I think I had the same problem as you which I solved by adding {NDK install dir}/prebuilt/darwin-x86/bin to my path.
I've written a blog post about my experiences of installing ADT/NDK, this solution appears about half way through.
Try to use linux terminal or use cygwin
Or check out this link