How to convert cocos2d-x android project to c++ in eclipse ADT - eclipse

Hi I'm fairly new with Eclipse. I'm trying to work on my cocos2d-x project on Eclipse, but for some reason I couldn't convert the android project to a c/c++ project and so I couldn't open the c++ files inside the Classes folders as you can see on the image here.
cocos2d-x: cocos2d-x v3.0 alpha0
eclipse: (ADT)Android Developer Tools - Build: v22.2.1-833290
os: windows 7
What I did:
ran create-multi-platform-projects.py in cmd
opened eclipse(ADT) then File->New->Other->Android Project from Existing Code->browsed to {cocos2d-x v3}/projects/mygame/proj.android
built the project.
tried to convert the project. Right-clicked project->New->Other->Under C/C++ tree, select Convert to a C/C++ project (Adds C/C++ nature)
but then the candidates for conversion is empty, meaning I couldn't convert my project to c++. I have installed the C++ plugins as seen here. Obviously I'm missing something here but I can't figure out what. I've been following tutorials on setting up cocos2d-x android development on eclipse windows os but I'm stuck with the converting to c++ step. Please could someone point out what I'm missing. Thanks in advance.

It will already be having c++ nature, so it wont show you that option (You can verify this by checking if you have C/C++ build in your project properties)...
You can open the cpp files by adding a reference to the source folder, to do so follow the below steps:
Right Click your project and select properties
Goto Resource->Linked Resources
In Path Variables Tab, Click New...
Give some name and choose the folder where you have your source code
It will now show a link to the source code folder in the project

Here are one by one steps, You may setup easily!

Related

Import Eclipse C++ Workspace Into Visual Studio Code for Linux

I have a workspace in Eclipse on Linux Mint. This project builds for and ARM platform device running Debian linux.
I am not an expert on this. We have a guru who set it all up for us. I am not sure which method the project uses to build the apps, but I do know all I have to do it right click the project in Eclipse and select build on any of the apps and they build.
I would like to use VS Code to develop this app. Is there any way to import the whole workspace into VS Code and have it actually build and debug on the target device?
If so can someone please give me the steps?
I just clicked menu item File->Open Folder...
Then navigate to the parent folder of your workspace, which is actually your Eclipse workspace folder. Highlight it, then click the Select Folder button. Then it just loaded all my Source files in. I can't tell you how to convert to building your code, as I only did this to search files and hopefully find variable's definitions. And this worked! I didn't even need to do a full scan of my source files or anything (or maybe it did this automatically at some point). I just went to the definition-unknown variable's location I know about, highlighted it, and right-clicked and selected Go to definition, and it went and opened the file with its definition.

Gtkmm in Eclipse makefile project: "could not be resolved"

I am trying to migrate a custom C++ project which uses Gtkmm3.0 to Eclipse (Oxygen) on Ubuntu 16.04. The project has its own Makefile and builds fine from the terminal within Eclipse. What I have not been able to do so far is tell the indexer about Gtkmm, and I get lots of these (which is very annoying):
When I hover over the little red bugs, it says:
Type 'Cairo::RefPtr<Cairo::Context>' could not be resolved.
I have done a lot of Googling on this and found nothing so far because all answers seem to assume the project's build tools are managed by Eclipse (See this or this, for example). In my case I have a makefile project instead of an executable project and hence some options are not available to me. For example, the first links speaks about configuring the builder:
We have to add all this directories. On Eclipse select the Project->Properties menu option. Select C/C++ Build->Settings property page and GNU C++ Compiler->Directories from the Tool Settings tab. Now we have to add all directories. In my case (Makefile project) only two tabs are available there: Binary Parsers and Error Parsers.
How can I tell the Eclipse indexer I am using Gtkmm3.0?
Found the solution that works for me:
Open a terminal and enter:
pkg-config --cflags gtkmm-3.0
You will see a list of includes directories (starting with -I). These are the directories you want to add in Eclipse so that it can locate the Gtkmm symbols in the editor.
In Eclipse, go to:
Project -> Properties -> C++ General -> Paths and Symbols
In the Includes tab, select GNU C++. You need to add here add the include directories found in step 1. There is no automated way to do this, yo must enter them one by one.
One trick that can save you some time is to edit manually the Eclipse project setting XML file and add the include directories directly in the XML file. By the end, you should have something that looks like this:
That did it for me, hope this helps!

Eclipse Cpp - What is the difference between C Project, C/C++ Project and C++ Project?

In Eclipse CDT IDE that i downloaded for Linux (because unfortunately Code::Blocks on Linux/Unix doesn't work so well for me) i am given these three options for creating a project. I can understand the difference between a C and a C++ Project of course. But what exactly is the C/C++ Project? Which one should i choose for C++ development? I can't find clear information on this. Thanks in advance.
The C/C++ Project is the new wizard to create projects. If you select it, on the next page you will get the choice of C or C++ project:
The new wizard has been created to unify all the wizards and make adding new ones nicer and easier. For example, if you have Arduino tools installed then you can create an Ardunio sketch that way.
If you just want a C or a C++ Project, choosing the C/C++ New Project wizard just means one extra click.

Eclipse does not seem to recognize Native Android code

I am trying to learn about native Android, using NDK.
I find some sample projects in NDK folder and on the Internet. After much configuration, they are runnable.
But, my problem is: when I open a .c or .h file in JNI folder with Eclipse (just want to see what it is), Eclipse shows many error in this file. For example, it don't know what is JNIEnv, jobject, jstring.
I haven't made any change in the project, just opening it. Errors mean I can't rerun it again except if I delete it from the workspace then reimport it.
Eclipse does not work well with C/C++ files. At least, for me it did not.
After some search, I have managed to configure Code::Blocks to support NDK, please see this answer to the question:
Need a simple Linux C++ IDE (Android NDK) .

Setting up a cross-platform C++ project in Eclipse with cross-platform libraries

I am working on a cross-platform C++ project with 8 other people which uses the following libraries:
OpenCV Library
Boost C++ Library
The project is inteded to be cross-platform so all users have agreed not to use platform-specific code, and, to keep things as simple as possible, all users will be using Eclipse as their IDE. However, some will be using Eclipse for Windows while other will be using Eclipse for Linux.
Since the project will be hosted on SVN, we would like to avoid conflicts with different configuration files (like make files, eclipse project files etc..) which are shared. We would also like to share as much of the configuration files as possible through SVN, to keep the configuration as simple as possible.
Let's assume that all users have properly configured system variables and installed the required build tools (such as make, cmake etc.), and have configured their Eclipse settings configured properly (but not the project-specific settings).
How to configure the project once and what of the configuration files to share on the repository, so that both Windows and Linux users can compile it without modifying configuration files retrieved from the SVN repository?
(I am not looking for the complete solution which would specifically work for those 2 libraries I mentioned, so I would appreciate a general how-to step-by-step explanations which would enable me to easily add another library.)
General discussion:
You will need to install Cygwin or something similar to it to make GNU Autotools toolchain available to Eclipse on Windows:
How to deal with Eclipse CDT+Cygwin?
Once your toolchain, Eclipse, with CDT and SVN connectors are ready on your development machines, go through the following steps.
Open Eclipse and switch to CDT: Click Window->Open Perspective->Other... and select C/C++
Select: Eclipse->File->New->C++ Project
Project name: viewer
Select: Project type->GNU Autotools->Hello World C++ Autotools Project
Click: Next
Click: Finish
Right-click in Project Explorer: viewer->Reconfigure project
Click: Console->Display Selected Console submenu-># CDT Global Build Console. If "autoreconf -i" output is nominal, proceed to step 9. If Console reports: sh: autoreconf: command not found, then add the path to the autoreconf command to the Project Build Environment:
Right-click in Project Explorer: viewer->Properties->C/C++ Build->Environment->Add...
Name: PATH
Value: path_to_autoreconf:${env_var:PATH}
Click: OK
Click: Apply
Go back to step 8.
Double-click: Project Explorer->viewer->src->viewer.cpp
Add some code:
include <opencv/cv.h>
include <opencv/highgui.h>
include <cassert>
int main(int argc, char *argv[]) {
assert(argc > 1);
CvMat* img = cvLoadImageM(argv1);
cvNamedWindow("Picture", CV_WINDOW_AUTOSIZE);
cvShowImage("Picture", img);
cvWaitKey(0);
return 0;
}
Double-click: Project Explorer->viewer->configure.ac and enter the following code below AC_PROG_CXX.
AC_CHECK_LIB([opencv_core],[cvSetZero],[],[])
AC_CHECK_LIB([opencv_highgui],[cvShowImage],[],[])
AC_CHECK_LIB([boost_regex-mt],[regexecA],[BOOST_LIB_SUFFIX="-mt"],[BOOST_LIB_SUFFIX=""])
AC_SUBST(BOOST_LIB_SUFFIX)
Double-click: Project Explorer->viewer->src->Makefile.am and enter the following code.
>
bin_PROGRAMS=viewer
viewer_SOURCES=openCvFocusIssue.cpp
viewer_LDFLAGS = -lboost_regex#BOOST_LIB_SUFFIX# -lopencv_core -lopencv_highgui
Repeat step 8, autoreconf (Reconfigure project)
Click: Project Explorer->viewer
Build project by clicking the hammer in the toolbar. If you do not see the hammer, Window->Open Perspective->Other... and select C/C++. If C/C++ does not show up, install the CDT.
Click: Project Explorer->viewer and then Run->Run, then in the Run As window->Local C/C++ Application, then in the Launch Debug Configuration Selection window->gdb/mi and press enter. You should see Hello World.
Quit Eclipse and navigate to the viewer project directory.
On the command line, issue make dist
Ensure you got a viewer-1.0.tar.gz or similarly named file, and then remove it: rm viewer-1.0.tar.gz
On the command line, issue make clean
In the same place, issue make distclean.
Navigate to the workspace directory that contains the viewer project.
Move the entire viewer directory to the directory that contains the svn checkout you want to place the viewer project in.
Change directories to where you just moved the viewer.
svn add viewer && svn ci -m "Added eclipse-autotool project"
Open eclipse and make sure that you have an SVN connector installed.
Remove the "viewer" project from the Project Explorer view.
Open eclipse and add this SVN repository checkout to the Team perspective.
Import the viewer project from your SVN repository checkout.
Switch back to the C/C++ perspective and have fun.
Two suggestions:
Use cmake: I love this tool. There is a bit of a learning curve but
if you get it right all the project will include is the cmake files
and when a person first checks it out they run cmake to generate
their makefiles (or VC++ project files, etc) with all the different rules for linux or windows one
might need.
or
Check in a basic config for the project, then add those configs to the git/svn ignore so no one ever checks them in again, then when you checkout for the first time you have to get your config running but after that it won't be overwritten.