Category Archives: CDT

compiling windows apps on linux

now that we successfully used cmake to compile a linux app (in the last article), we will now try and compile it for windows.

I am doing this on Gentoo linux, so your mileage may vary if you used a different distribution.

I am starting with http://gentoo-wiki.com/HOWTO_MinGW as a rough guide.

  • # emerge -va sys-devel/crossdev
  • # echo ‘PORTDIR_OVERLAY=”/usr/i686-mingw32/usr/portage /usr/local/portage $PORTDIR_OVERLAY”‘ >> /etc/make.conf
  • create the directory /usr/i686-mingw32/usr/portage
  • install the toolchain: # crossdev i686-mingw32

With Ubuntu/Debian you can simply install it using apt: “apt-get install mingw32”. This will install the toolchain as i586-mingw32msvc-gcc to /usr/bin/ .emerge the packages you want to have as cross compiled programs or libraries.

Once you have installed ming32, it is easy to compile for linux:

#  i686-mingw32-gcc helloworld.cpp -o wintest.exe

Now the next step in the puxxle is to get cmake to compile for both OSes  each time make is run.

Leave a comment

Filed under C++, CDT, cmake, gentoo, linux, windows

Cross platform development with the Eclipse CDT

So, you want to create an application that can un under both Linux and Windows?

This is my experiment trying to do just that… Lets see if the Eclipse CDT is robust to do cross platform development!

Step 1: Install the Eclipse 3.3 SDK if you have not already done so. Make sure to get the CDT components. If you download the java sdk, you can add the CDT packages by adding the following plugin update site: http://download.eclipse.org/tools/cdt/releases/europa

Step 2: Install the cross platform make system, cmake. it’s eclipse download site is:
http://cmakeed.sourceforge.net/updates/

Step 3: Create a C++ project in eclipse.

  • Go to “New->C++ Project” Menu (or Go to “New->Hello World C++ Project” Menu if you are making an empty project and want to see some c++ code used by default)
  • Select the MakeFile Project type, choose Other Toolchain and click Next
  • Select the Advanced Settings Button
  • Uncheck the Use Default Build Command
  • Insert the following in the Build Command Text Field: make -C ${project_loc}/Build VERBOSE=1
  • Under the “C/C++ Build” options, select “Settings”.
  • In the Right Side pane select the binary format for your system (Elf for linux).
  • Click on the OK Button.
  • Create a file in the project root named: CMakeLists.txt [todo: what are the contents of this file???]
  • Open a terminal window
  • cd to your project directory
  • Create a build directory: mkdir Build
  • Change directory to the Build dir: cd Build
  • Run the command: ccmake ../
  • Follow the ccmake instructions. when done, your project is ready.
  • Refresh the eclipse project to show the new build directory.

Step 4: Create an eclipse run menu for cmake:

  • Select the “Run->External Tools->Show External Tools Dialog…” menu.
  • Create a new “Program” and call it Cmake.
  • In the “Location” text field, type the absolute path to cmake (i.e /usr/local/bin/cmake or whatever path your system uses).
  • In the “Working Directory” test field insert the following: “${project_loc}/Build” and in the Arguments section insert the following: “../”.
  • In the “Refresh” tab select The project containing the selected resources.
  • In the “Common” tab check the “External Tools” selection.
  • This will put a shortcut in the “Run” menu for you.
  • Click the Apply Button and then run.
  • CMake will now run on your project directory.

Step 5. Build the project using the command “Run -> External Tools -> cmake”

Next Up: Getting the project to generate both a windows exe and a linux executable.

see also: http://paraview.org/Wiki/CMake:Eclipse

3 Comments

Filed under C++, CDT, cmake, Eclipse, linux, windows