[CMake] Cross-platform build under Windows targeting Linux

setareh S setareh.s1984 at gmail.com
Mon Jun 10 04:52:34 EDT 2013


I am developing a software in C++ on windows 32-bit (using MSVC++), but
since I want to be able to use my software on every platform, I have
decided to use CMake as my build generator.

Therefore, I am still just a beginner in CMake. From the CMake tutorials, I
understand that in order to cross compile codes, first a toolchain
simulating the target platform should be installed on the host platform.
Then using the appropriate target-platform C and C++ compilers provided by
this toolchain, CMake would be able to generate makefiles etc.

Now, I want to build my code for Linux platform(GNU/Linux) on a Win32
platform. I tried doing the above procedure using CMake combined with
Cygwin and using gcc and g++ as compilers. It built fine, created
makefiles, and when I issued "make" in Cygwin terminal, the generated
makefiles were "made". Now I have got an executable which I was hoping
would run on Linux platform. But on Linux I get the error: bash cannot
execute binary file.

Using command file executablename, I realized the executable which is made
by the above procedure is of type PE32 which is only for Windows.

Now my question is: Is my understanding of cross-platform build procedure
using cmake correct?Or should I just use another Linux toolchain under
windows to get a Linux ELF executable? What toolchains come to your mind
which would give me what I want?
Many thanks
Setareh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20130610/76b71a96/attachment.htm>


More information about the CMake mailing list