Setting up Cygwin + Android NDK + cocos2Dx to work with Eclipse - android-ndk

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!

Related

Cygwin Gcc error while loading shared libraries?

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 cannot compile Z3 using Visual C++ & gcc

I'm starter Z3 so my question may be too basic.
But If you let me know some information for my question, I'm very happy.
I searched before history in this site.
But I couldn't get detailed information for me. ( because maybe..my question is too basic..)
[using Visual C++]
1) First of all, I downloaded "z3 4.3.0 for window" at codePlex site.
But this file doesn't have example file(test_capi.c).
So I got "z3-89c1785b73225a1b363c0e485f854613121b70a7.zip" for example file.
( I cannot remember what I can get... :( )
I succeeded compiling python file as codeplex site quide.
But I cannot compile test_capi.c using Visual C++.
I also added "test_capi.c" at "z3 4.3.0 for window" folder but I cannot also compile.
Lastly, I just tried using "test_capi.vcxproj" of "z3-src-4.1.1" and this is succeeded.
I cannot understand.
If i want to test "my file", what file is needed at "z3 4.3.0 for window"?
Or
Do I have to use only "z3 4.1.1" for visual c++ and add "my file" at some location of "z3 4.1.1"? ( All files of Z3 4.1.1 is needed?? AND what is the Some location?)
I read other some comment - "Z3 4.3.0" is simplified.
I understood this comment that I can use only "z3 4.3.0" and test successfully.
But as i told you, I cannot compile.
Please give me some information..
[using gcc in ubuntu]
First of all, I downloaded "z3-4.3.2.07d56bdc705c-x86-ubuntu-12.04.zip" from codeplex site.
Because I tried git command for getting source code but i cannot find source code.
( I also don't know the reason..)
Anyway... "z3-4.3.2.07d56bdc705c-x86-ubuntu-12.04.zip" doesn't have any example file and only bin & include folder is existed.
So I also used "z3 4.1.1" but i cannot compile using below command.
gcc -fopenmp -o test_capi -I ../../Include -L ../../lib test_capi.c -lz3-gmp
Error is "cannot find -lz3-gmp."
In some comment, I found "use "sudo install"" but i don't know how i can install lz3.
(Of course only "sudo install" doesn't work and "sudo apt-get install z3" also doesn't work...)
For compiling "test_capi.c" using gcc, could you explain in detail..?
I'm confused many kinds of guide but i couldn't get basic information for me.
Thank you in advance and I hope to get information...even if my question is too basic..
First, you should use only one version of the source code. Version 4.1.1 is very old and newer versions do not come with test_capi.vcxproj anymore, instead everything is done via the Makefile. For the very latest version please use the unstable branch (e.g., by selecting unstable here and then clicking download.)
The examples can be compiled by calling nmake examples (on Windows) or make examples (on Linux) in the build directory. The makefile has a target called _ex_c_example which shows how to call the compiler for the C example. The various variables that this target uses are defined in build/config.mk. Note that these variables are set to different values on Windows and Linux (this file is produced by python scripts/mk_make.py).
The git command on many Linux distributions is not compatible with the codeplex git server (for a fix see here), but of course this is not necessary if you download the source code from the webpage directly.

How do i resolve the procedure entry point_impure_ptr error in cygwin/opencobol?

Whenever I try to run my .exe cobol file, i get this error..
fileName.exe Entry Point Not Found
The procedure entry point_impure_ptr could not be located in the dynamic link library cygwin1.dll
I am using OpenCObol and cygwin ver1.7.15.thanks
You'll need to specify the proper path for the command below, but Cygwin seems pretty persnickety with entry point addresses and updates, The system includes a rebaseall command to help fix this problem. Most times I've witnessed it is after a setup.exe pass, while the Cygwin system was still active (and perhaps only in the background and not visible).
C:\Users\btiffin\cygwin\bin\dash -c '/usr/bin/rebaseall'
Run that from a Windows CMD shell (while Cygwin isn't active, say after a clean boot and before running the Cygwin shell. Basically cygwin1.dll can't be open). You'll need to use the proper Windows path to dash for your particular install. Google Cygwin rebase for detailed articles.
I had a similar error message after upgrading from cygwin version 1.5 to 1.7. I solved it by completely removing and reinstalling 1.7 from scratch. I was told there might have been a problem with multiple versions of dlls.

Taglist: Exuberant ctags not found in PATH

This morning, I started getting that message when I attempt to open a file in Vim. Vim is my editor of choice for config files, git commit messages and the like, but is not my day to day code editor. I clearly did something to invite this message, but I have no idea what. I did recently uninstall an older version of XCode from /Developer-3.2.6, but that's the only thing that comes to mind that seems even tangentially related.
I'm running OSX Lion. Is Excuberant ctags part of the base install? I know I didn't install it intentionally, but if it's not native, then maybe it came along with something else? Any ideas about how to either get the plugin back or remove references to it so I don't get the warning message?
Thanks.
For Ubuntu and derivatives:
sudo apt-get install exuberant-ctags
With yum:
sudo yum install ctags-etags
FWIW I had the same error message on Ubuntu, I simply installed ctags and everything hunky dory. Thanks :)
That looks a lot like the message the taglist plugin emits when it can't find a ctags program. If you run :scriptnames, do you see plugin/taglist.vim in the list of sourced files? If you do, then you'll probably want to remove that and doc/taglist.txt under the same directory structure.
If you are using Gvim in a Windows system, you should download a ctag Windows program (that is ctag.exe) and put the ctag.exe in the vim74 file dir, then reboot Gvim, and it will find it and use it! I hope this is helpful.
Take a look at this: http://vim-taglist.sourceforge.net/installation.html
Thanks, guys. I ended up reinstalling XCode and it looks like the problem has gone away. I have no idea how I got it into whatever state it was in, but it's back now and everything looks to be back to normal.
I encountered the same issue after upgrading to Mountain Lion. I fixed it by reinstalling the CLI tools from XCode preferences > Downloads. I had the CLI tools installed before upgrading. Not sure what happened, but it works now.
I encountered this issue on a host, but I didn't have permission to install any packages.
But i did find out the gctags was present on that system.
I created a softlink for the gctags binary in a location that was included in my PATH environment variable.
$ln -s /usr/bin/gctags ~/bin/ctags**
You can do the same if you find etags binary in your system, and have no way to install any packages.

Installing flash 9 debugger in linux

I've been trying for some time to use the ExternalInterface.call method in flash, to no avail (see here: actionscript + javascript here: Using ExternalInterface in Flash and here: Flash trace output in firefox, linux) and now I'm trying to trace ExternalInterface.available. So far my best option seems to be FlashTracer for firefox, except that I have to have flash player 9 installed. I've removed my old flash player and downloaded the appropriate files (http://download.macromedia.com/pub/flashplayer/updaters/9/flash_player_9_linux_dev.tar.gz). According to the readme included these are the steps for installation:
Installing the debugger plugin tar.gz using Install script:
o the debugger plugin is located at:
./plugin/debugger/install_flash_player_9_linux.tar.gz
o Unpack the tar.gz file
o In terminal, navigate to the unpacked directory and enter:
+ $ ./flashplayer-installer
+ Click Enter key and follow prompts
except there's no file called flashplayer in the debugger directory. Anyone else ran into this? How can I install flash player 9 debugger on my Ubuntu system?
If you're using something like Ubuntu, the Flash plugin is probably a system wide thing. Under Ubuntu 8.10 for example, I have it at:
/usr/lib/flashplugin-installer
additionally you'll find at:
/etc/alternatives/
links to it, so you can change which .so is used depending on the user.
The easiest thing you could probably do if the ./flashplayer-installer file doesn't exist (though it does in mine) is to copy the debug flashplayer library to this directory. e.g:
root#me:/usr/lib/flashplugin-installer# mv libflashplayer.so libflashplayer.non-debug.so
root#me:/usr/lib/flashplugin-installer# cp ~jamie/Adobe_Flex_Builder_Linux/Player/linux/install_flash_player_9_linux/libflashplayer.so libflashplayer.debug.so
root#me:/usr/lib/flashplugin-installer# ln -s libflashplayer.debug.so libflashplayer.so
I haven't seen the issues you have, and perhaps your requirements restrict you to an older version, but I've had great success with flashplayer 10's debugger. You might try this one and see if it works.
Edit: Ahh, I just noticed one very pertinent statement you made: you require flashplayer 9. Sorry =(
Edit 2: I just had the same thing happen to me on Linux. When I extracted the tar.gz from Adobe, the installation script wasn't present. This said, I was able to get the debugger version of 9 installed anyway.
When you extracted, did you see a libflashplayer.so file? I didn't have an installation script, but I did get this file. If so, all you need to do is this:
Close all instances of Firefox
Backup your current libflashplayer.so module: ~/.mozilla/plugins/libflashplayer.so.org (this way, if something goes wrong, you can always put it back)
Copy the version you extracted from the Flash player download to the same plugins directory: cp /path/to/vers/9/libflashplayer.so ~/.mozilla/plugins/
Restart Firefox, open a Flash app, and right-click to check for the version
These steps worked perfectly for me, and I was able to run Flex Builder's debugger in Linux. Hope it works for you!
One way you can do it is downloading the flex 3 SDK for linux. When you download it you'll get a couple of tar's. You can find this in ~/flex_sdk_3/runtimes/10 if you want to install the flashplayer 10 and ~/flex_sdk_3/runtimes/lnx/ if you want the flashplayer 9. Uncompress those files (flashplayer.tar.gz and libflashplayer.so.tar.gz with tar -xvf). Now cp libflashplayer.so the file to /usr/lib/mozilla/plugins/ and if you want create symbolic links (ln -s flashplayer /usr/local/bin to have the player on your path
A tip for anyone who searches for this like I did... find out where libflashplayer.so currently is on your system:
sudo locate libflashplayer.so
Mine was in /usr/lib/flashplugin-installer/
Once I replaced that file with the debug version of the file, Firefox reported that I had the debug version of the player.
I also had the same issue with flash player debugger. I followed the instructions given by bedwyr. It worked for me. To make it work, you create a directory named 'plugins' into ~/.mozilla if plugins directory is not found.
mkdir ~/.mozilla/plugins
Then I copied libflashplayer.so to plugins directory. Now flash player debugger worked for my Flex Builder's application.

Resources