I tried many solutions posted here in stackoverflow and some other forums and googled till I am totally frustrated. I am using Windows 8 with cygwin. I try to get the PocketSphinxAndroidDemo run, followed the tutorial on
http://cmusphinx.sourceforge.net/2011/05/building-pocketsphinx-on-android/
but I had no success. What I have done:
Go through the tutorial,download all resources and installed cygwin and swig. Then, the first thing that´s not working was cd into sphinxbase folder and type command ./autogen.sh . No matter how I wrote it(./autogen.sh, only autogen.sh, only autogen etc), this doesn´t work. Ok, I then go on with the tutorial and give command configure, make and make install. This worked, but when I try to build with ndk-build, I get the next error message on the cygwin terminal:
jni/pocketsphinx_wrap.c:760:26: fatal error: pocketsphinx.h: No such file or directory
I changed to all posted solutions the Sphinx Path in the PocketSphinxAndroidDemo jni-folder Android.mk file. I tried all that stuff like
SPHINX_PATH :=$ /cygdrive/c/Programmierung/DeveloperLibs/CMUSphinx
SPHINX_PATH :=$ /c/Programmierung/DeveloperLibs/CMUSphinx
SPHINX_PATH := /cygdrive/c/Programmierung/DeveloperLibs/CMUSphinx
SPHINX_PATH :=$ /home/c/Programmierung/DeveloperLibs/CMUSphinx
SPHINX_PATH :=$ /cygdrive/home/Programmierung/DeveloperLibs/CMUSphinx
and so on, and so on.....nothing helped. By the way the local static libs are defined:
LOCAL_STATIC_LIBRARIES := pocketsphinx sphinxlm sphinxfeat sphinxfe sphinxutil
this must be right, because this was posted many times to change the order. Even I tried it with
include $(BUILD_SHARED_LIBRARY) and changed it to include $(BUILD_STATIC_LIBRARY)
none of this gave me a result, error still exists....what the hell could I do to get it work?
Then, the first thing that´s not working was cd into sphinxbase folder and type command ./autogen.sh . No matter how I wrote it(./autogen.sh, only autogen.sh, only autogen etc), this doesn´t work.
You do not need to run autogen.sh
This worked, but when I try to build with ndk-build, I get the next error message on the cygwin terminal:
jni/pocketsphinx_wrap.c:760:26: fatal error: pocketsphinx.h: No such file or directory
You need to download an archive with sources, not the one named win32, which is only for Windows. The file pocketsphinx.h is contained in pocketsphinx-0.8.tar.gz/include.
Compiler has the concept of the "header search path" where it finds the includes. Search path is specified in the compiler command line arguments with -I option. If compiler can't find some file, most likely file is in another location or the search path is incorrectly specified. You need to put the file in the right location or specify the search path properly.
Now I got it worked, I don´t like to answer my own question but maybe it helps other poeple with the same problem. Nikolay Shmyrev pointed me to the right direction, many thanks to him. Here is a little tutorial to get pocketsphinx work on windows and android:
https://sites.google.com/site/opiatefuchs/home/pocketsphinxandroiddemo
Related
I am trying to build OpenSim from source code using the CMake GUI as per these instructions (Linux) : https://github.com/simbody/simbody
I have found several problems in step 3 of this process, at first the program didn't seem to find Simbody even though I have that installed and have the path to the code specified like so:
After I tried to configure the code a few times a new error popped up:
CMake Error at CMakeLists.txt:575 (find_package):
Could not find a package configuration file provided by "BTK" with any of
the following names:
BTKConfig.cmake
btk-config.cmake
Add the installation prefix of "BTK" to CMAKE_PREFIX_PATH or set "BTK_DIR"
to a directory containing one of the above files. If "BTK" provides a
separate development package or SDK, be sure it has been installed.
I tried to solve this by specifying the path to the required files (I do have them) in the 'Value' field, but as soon as I hit 'configure' the path is gone and it reverts back to the 'BTK_DIR-NOTFOUND' you see in the picture.
I have closely followed all the instructions listed through the Opensim website but still nothing is working as it should, any help would be immensely appreciated
I have instaled Cygwin after running MinGW for a while now. But when I try to compile the console gives me:
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
What does this mean?
I have the same problem and I found the solution.
According to the FAQ of Cygwin
Q: Why is C:\cygwin\usr\bin invisible from windows?
A: Because it does not really exist. In cygwin, /usr/bin is just a link to /bin.
So trying to add "C:\cygwin\usr\bin" to PATH will be in vain.
Add "C:\cygwin64\bin" to PATH instead. Hope this helps :)
You are missing a library, please run cygcheck /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe or ldd /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe to see what is the missing library.
(I'd rather ask a question in the comments first, but I don't have enough reputation yet.)
Your cc1 is unable to load some DLLs it needs to start. Looking at the Cygwin source code, this can be either a library specified in LD_PRELOAD, or -- more probably -- a library the executable depends on. The ? in the error message seems to be the default return value of find_first_notloaded_dll (hookapi.cc), in case the function can't determine what library is missing.
To diagnose the issue, I suggest checking your PATH variable (or even clearing it of any non-Cygwin paths and trying the compilation again) and/or using Dependency Walker to find the missing DLLs (start it from a Cygwin shell, so it can see the same PATH). ldd (included with Cygwin) may also give some clues, but I wouldn't bet on it.
It's possible a clean re-install of Cygwin will be necessary to solve the issue.
Most likely, you are simply missing /usr/bin in the PATH variable.
Adding 'export PATH=/usr/bin:$PATH' to your .bashrc file will solve the issue.
Adding some background info. I had the same problem when building my own program and linking it against graphviz cgraph.dll. Turns out this is related to where windows searches for DLLs (see here: https://msdn.microsoft.com/en-us/library/7d83bc18.aspx) So adding the path of your missing library to PATH should fix the problem.
It is unfortunate that the message doesn't include the name of the library. Luckily cmd.exe DOES give you this name (so it's good for something after all;)
Are you including the path to your lib directory?
Looks like you are not
I'm not very familiar with Cygwin, I mainly use MinGW, but I think the error message speaks for itself
I also came this error on windows machine while executing .exe file generated by scilab2C i.e toolbox for Scilab
For Windows 32 bit Add the environment variable path as follow :
C:\cygwin\usr\i686-pc-cygwin\bin
Hope so this will solve your issue.
Just had this problem trying to compile a package with make and it wanted some cygguile dll file that was just installed along with make.
My solution was I had not only migrated my cygwin64 directory across drives because the sector sizes were mismatched for some reason even though the drivers were both under 2TB and should have been using 512 byte sector sizes.. So I had to install a new system and move files over there, might have had weird permissions on them.
Also had to patch cygwin1.dll end of Jan 2020 because of a recent input problem in ConEmu with Windows 10 1903 build, but just did it again with this working so that doesn't seem to be the issue.
Reinstalling cygwin by deleting that entire directory, taking ownership of it first.., seemed to work now...
I am trying to build NetCDF4 from source on MacOSX. When I run ./configure I get the error:
checking for library containing H5Fflush... no
configure: error: Can't find or link to the hdf5 library. Use --disable-netcdf-4, or see config.log for errors.
I installed hdf5 before, and set the environment variables as:
LDFLAGS=-L/opt/local/lib
CPPFLAGS=-I/opt/local/include
In /opt/local/lib I have these files:
libhdf5.8.dylib
libhdf5.a
libhdf5.dylib
libhdf5.settings
libhdf5_cpp.8.dylib
libhdf5_cpp.a
libhdf5_cpp.dylib
libhdf5_hl.8.dylib
libhdf5_hl.a
libhdf5_hl.dylib
libhdf5_hl_cpp.8.dylib
libhdf5_hl_cpp.a
libhdf5_hl_cpp.dylib
And in /opt/local/include I have:
hdf5.h hdf5_hl.h
Why doesn't the configure script find the hdf5 library? I am happy to provide more information if needed!
EDIT:
My ultimate goal is to install netcdf4 for use as a Fortran module. I have tried installing everything through MacPorts, and it seemed to work, but when I tried to use it, the compiler told me that there was no netcdf.mod file, and sure enough there wasn't one to be found anywhere.
It turns out that just typing:
sudo port install netcdf-fortran
only installs the library files, but doesn't create a .mod file, which I guess is needed. So I found out that other people had the same problem, and the advice given was to install it with gcc44, which did create a .mod file, but then my compiler told me that the .mod file was built with a different version of gfortran and it couldn't be used, so that's why I am trying to build it from scratch, but if someone has a faster option, I would be more than happy to try it!
Ok, I finally figured it out.
I reinstalled netcdf-fortran with macports, then the .mod file suddenly appeared, I then had the problem, however, that when running gfortran, it would tell me that netcdf.mod was compiled with a different version of fortran than the one I am using. (Macports uses 4.8), so got gcc48 from macports and am using gfortran-mp-4.8 to compile now and it works.
Still don't know how to build all these things from scratch, but it works now at least!!!
Typically, I see this when there is a downstream dependency that cannot be fulfilled. The test program created by configure is finding libhdf5, but compilation is still failing because it cannot find something like libz or libszip, depending on how your libhdf5 was compiled.
If you check your config.log file and look for the error, it will probably tell you something along the lines of 'unresolved symbol'. This will give a clue as to which library is missing. If it is linking against the statically-built libhdf5, you may need to add the appropriate library usingLDFLAGS.
If you post the relevant portion of your config.log file, we may be able to help sort out what exactly is going wrong.
Sometimes it doesn't work in the configure parameters like
./configure --enable-shared --enable-fortran --enable-netcdf-4
CPPFLAGS=-I$home/apps2/include LDFALGS=-L$home/apps2/lib --prefix=$home/apps2
or doesn't work when export CPPFLAGS=-I$home/apps2/include in the open SHELL.
Maybe you can set the env vars CPPFLAGS and LDFLAGS in the .bashrc file (prior to the first two ways).
I'm following a tutorial from this website: Monetizing Game Apps by Todd Perkins
Access to all the files are not required for the questions I'm asking. I have done research on how to solve this on stack overflow and discussed it below
I have followed the tutorial and it has asked me to:
Install Cygwin
Download Cocos2dx-2.0.1(I know this is old, but I don't want to deal with deprecating problems until I'm more confident with the environment)
Run create-android-project.bat(works fine).
Open project I created- and move to proj.android and run build_native.sh in Cygwin.
Then I open up cygwin.bat, navigate to myproject/proj.android and run ./build_native.sh
Problem:
$ ./build_native.sh
Using prebuilt externals
./build_native.sh: line 74: /cygdrive/c/android-ndk-r9c-windows-x86_64/ndk-build: No such file or directory
So I looked into the files and double-checked my changes:
In create-android-project.bat I modified the following variables:
set _CYGBIN=c:\Cygwin64\bin
set _ANDROIDTOOLS=c:\Program Files (x86)\ADT\adt-bundle-windows-x86_64-20130219\sdk\tools
set _NDKROOT=c:\android-ndk-r9c-windows-x86_64
Check line 74 that cygwin complained about in myproject/proj.android/build_native.sh:
echo "Using prebuilt externals"
$NDK_ROOT/ndk-build -C $GAME_ANDROID_ROOT \
NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt
Double check what NDK_ROOT is pointing to in build_native.sh:
NDK_ROOT=/cygdrive/c/android-ndk-r9c-windows-x86_64
COCOS2DX_ROOT=/cygdrive/c/Users/DarkRaveDev/Documents/cocos2d-x-2.0.1
GAME_ROOT=$COCOS2DX_ROOT/chaara
GAME_ANDROID_ROOT=$GAME_ROOT/proj.android
RESOURCE_ROOT=$GAME_ROOT/Resources
My Research:
I surfed SO for quite some time and tried the following from SO:
EOL Conversion in Notepad++ so LF works for windows for the build_native.sh
An answer somewhere said I need to install the make package when installing cygwin.. I'm not getting this problem, so I'm not sure if this applies.
I have searched many ways to set path - NDK_ROOT
QUESTION:
What exactly am I doing wrong? Is it the variables are badly set or is cygwin not properly installed?
Thank you to everyone who commented! :)
This is what I ended up doing.
Reinstall Cygwin : When you get to the select packages to install page, make sure to find DEVEL and change the install action from default to install. I know its a lot of megs but it's easier than combing through it. If you do want to comb through it and get only what you need, I suggest using this website: Installing a c++ compiler for windows
Make your paths simple : Like user2359247 suggested.
Finally run the create_android.bat, open your android project. Keep the path location of your build_native.sh file in mind and open your cygwin terminal.
Navigate to the path in cygwin, and run the file with sh build_native.sh: At this point everything was quite smooth sailing.
NOTE:
Also I kept using my version of ndk which is r9 instead of r8 in the tutorial, it didn't give me any hiccups.
Thank you SO!
Can't get Eclipse to build my NDK/JNI project. Eclipse, or ndk-build from a command prompt, both give following output:
/cygdrive/c/android-ndk-r8b/build/core/setup-app.mk:75: recipe for target `clean-installed-binaries' failed
make: *** [clean-installed-binaries] Error 6
What is "Error 6"? I can't find any doc on that anywhere. Helpfully, it doesn't say what the problem is, just giving the cryptic error code.
I found setup-app.mk and tried inserting something to echo the command it was executing, which was simply removing some files. I copied and pasted it to the command prompt and it worked fine on its own:
rm -f ./libs/armeabi/lib*.so ./libs/armeabi-v7a/lib*.so ./libs/mips/lib*.so ./libs/x86/lib*.so
Also tried inserting a "whoami" and it matched a whoami directly from the command prompt, so it's not acting as a different user with different permissions or something.
Been stuck on this for days. Can anyone help?
Rob.
PS. I'm finding Eclipse/NDK/JNI almost impossible to work with. It only seems to work for a week or two before falling in a heap again, seemingly with no change from me. This one is now unusable until I fix this error. I also have it installed on another machine, which is now also completely broken for completely different reasons. How does anyone work in this environment?
It's no miracle the actual command works: the error message comes from the make itself, which failed to generate the appropriate command!
Now what could have happened: most likely, you have some paths with spaces. Make sure that neigher eclipse, cygwin, project, workspace, nor ndk have spaces in their root paths.
Maybe, there is some problem with PATH. I refer to the environment variable in three environments: windows native, cygwin, and eclipse. Could it be that make you actually run is different from what you expect?
Note that you do not need cygwin to build with NDK 7 and higher, simply use ndk-build.cmd.