NDK_ROOT undefined. Please define - android-ndk

I am trying to compile these library into my android code https://sdk.dronecode.org/en/contributing/build.html . This library has C/C++ written code. Therefore NDK will be used here.
When I try to hit the command sudo make android install I get this error:
Makefile:152: *** NDK_ROOT is undefined, please point the environment variable to android-ndk root.. Stop.
I have set the environment variable into my .bashrc file . But still getting this error, please help me out to get this compiled. I am using ubuntu 16.04. I have checked the other links "NDK_ROOT not defined. Please define NDK_ROOT in your environment" but couldn't helped much.

sudo does not source .bashrc
You can try directly running the command with your env explicitly defined
i.e. sudo NDK_ROOT=xxxxx make android install
or follow the advices here, using .profile

Related

llvm-sys - Didn't find usable system wide LLVM. But llvm-config is installed

I have built llvm-13.0.1 from source using Visual Studio 17 2022 on Windows 11. When attempting to build llvm-sys (through external crate llvm-ir). It fails, saying:
error: No suitable version of LLVM was found system-wide or pointed to by LLVM_SYS_130_PREFIX.
I know llvm-config exists because I can use it from the command line, and it returns the correct version. I don't understand why this doesn't work. This might be a stupid question but I am really stuck.
I was also having this problem, trying to use llvm-sys on Windows. Here are some mistakes that I did that made it fail to compile just like yours.
Installation Prefix
Make sure that your LLVM installation path doesn't have any whitespace.
Mine was -DCMAKE_INSTALL_PREFIX=C:\Program Files (x86)\LLVM, which was their default install prefix. The whitespace in the installation path causes some errors when using it with llvm-sys. Later, I changed it to C:\LLVM and it worked.
Set Environment Variable
Set Environment Variable LLVM_SYS_<version>_PREFIX to the installed LLVM folder.
From CMD For LLVM-13.0.1
setx LLVM_SYS_130_PREFIX "<PATH TO LLVM WITHOUT WHITESPACE>" /M
Make sure that the variable is registered by using echo command
echo %LLVM_SYS_130_PREFIX%
It should output your registered path, not %LLVM_SYS_130_PREFIX%.
If it doesn’t output your path, restart the computer and try again and it should be working.
Now you should be good to go .....
Hope this helps :)

QtCreator cannot find the emscripten compiler

I followed this guide and installed emscripten using emsdk and activated it.Then I configured my $PATH as instructed by the emsdk itself and also sourced emsdk-master/emsdk_env.sh.Now I can access both emcc and em++ in the terminal.The file ~/.emscripten is also present(this is the file that QtCreator will fetch to find the path of compilers for WASM).
The WebAssembly kit for Qt also has been installed by the Qt Maintenance Tool.
Now in the Kit configuration in the QtCreator I get this(QtCreator is opened via terminal after sourcing emsdk_env.sh):
It cannot determine the path of compilers by itself.
In the Compilers tab I manually added a compiler as follows:
But I get this error in the Kits tab after that:
What does that mean? What did I skip? Does anybody ever have the experience of doing this?
Also changing the compiler from em++ to wasm-32-wasi-clang++ or clang++ doesn't change anything.
By the way if I use that kit I get:
Error while parsing file whatever.pro. Giving up.
Project ERROR: Cannot run target compiler 'em++'. Output:
===================
===================
Maybe you forgot to setup the environment?
And please don't tell me that this question is the duplicate of this because it isn't(mine has more details) and there's no useful answer for that after 9 months at this time.
Any help is much appreciated.
Make sure you run:
emsdk install
and
emsdk activate
within emsdk folder, not from a relative path.
You have to setup the emsdk inside QtCreator => Preferences => Devices => WebAssembly. Afterwards the compiler should be auto-detected by Qt Creator.
I had the same problem and the solution was, that python was not correctly recognized.
In my case the symbolic link /usr/bin/python was not set
ln -sf /usr/bin/python3 /usr/bin/python
Afterwards the emsripten Toolchain is recognized automatically in QtCreator.

Plowshare with disabled JS interpreter

I try to use plowshare to download files with command line but on ubuntu I got this error: "Use of Javascript interpreter is disabled in debian for security."
I've found that I should add environmental variable: "PLOWSHARE_DEBIAN_JS=yes"
I added it to ".bashrc" in home directory, with source after that but it doesn't work, i can't find anything what can help, anyone know how can i enable JS?
Not sure if you found a resolve. But I fixed this issue by command export PLOWSHARE_DEBIAN_JS=yes then you might encounter another issue like "Javascript interpreter not found. Please install one" just install nodejs sudo apt-get install nodejs

Mujoco_py missing path to LD_LIBRARY_PATH, Ubuntu 16.04

I am trying to get mujoco_py running. When I do
import mujoco_py
I get this error:
Exception:
Missing path to your environment variable.
Current values LD_LIBRARY_PATH=
Please add following line to .bashrc:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jonah/.mujoco/mjpro150/bin
I have added the above line to both /etc/skel/.bashrc and ~/.bashrc. If I run
echo $LD_LIBRARY_PATH
I get
/home/jonah/.mujoco/mjpro150/bin/
My .mujoco folder includes mjkey.txt and the mjpro150 folder. I can run ./simulate successfully, so I have a feeling that this is some kind of mujoco_py specific bug.
Which program do you use to import mujoco?
I had a similar issue using mujoco_py with PyCharm Community 2018.1. A workaround was to launch PyCharm from the terminal instead of using the launcher icon. Maybe it could help with your issue too.
Otherwise you could try adding the LD_LIBRARY_PATH to ~/.profile instead of ~/.bashrc, as proposed in this answer here: https://askubuntu.com/questions/1022836/python-not-recognizing-ld-library-path/1022913#1022913
You can try to reinstall Pycharm for the newest version.
After you save the .bashrc file your want execute this code.
source ~/.bashrc
Now link is updated.
Please check the user which you run the code with. The mismatch user will cause this problem. There is the checklist may help you:
Don’t use ‘sudo’ to run the code;
Don’t use ‘sudo’ or virtual environment (e.g., anaconda) to run Pycharm (If you run the code in Pycharm).

Cordova reports ANDROID_HOME is not set even though it is

I am trying to build the hello world app that comes with Cordova. I created the project and have added the following to my .bashrc:
export ANDROID_HOME=~/Android/Sdk
export PATH=${PATH}:~/Android/Sdk/tools:~/Android/Sdk/platform-tools
When I run echo $ANDROID_HOME, I see the correct path and running echo $PATH also returns the path with the correct sdk path appended. However, when I run sudo cordova build, it still says that $ANDROID_HOME is not set and android is not in your path. I have been trying to fix this for the last 3 hours with no solution :( Any help is appreciated! Thanks!
I seemed to have fixed my problem.
I am not 100% what it was, but it is likely that it had something to do with a combination of sudo and my JAVA_HOME variable not being set.
I was previously running sudo cordova build which was returning the error. I tried deleting and recreating the project after I read somewhere that it might be because of the sudo. After recreating the project, I ran it with just cordova build and I got a new error: Unable to run java -version. I figured that it was having some trouble locating my jdk installation and I had read somewhere that you needed to assign the JAVA_HOME variable in your .bashrc. So I added in export JAVA_HOME=/opt/java/jdk1.8.0_45 and then added $JAVA_HOME/bin to my path. After this, it built successfully.

Resources