[CMake] CMake 2.6.0 cross-compile: 1st time failed, 2nd time passed
Alexander Neundorf
a.neundorf-work at gmx.net
Tue Aug 5 16:05:07 EDT 2008
On Tuesday 05 August 2008, ning wrote:
> Hi, all
>
> Just for other cmake newbies, like me, who run into cross-compiler that
> is not able to build a simple program by default without special flags.
> When I go on reading the wiki
> http://www.cmake.org/Wiki/CMake_Cross_Compiling
> I found that I should use CMakeForceCompiler module to bypass build
> of cmTryCompileExec. It works for me now.
You need two special flags, if I see correctly ?
> > SET(CMAKE_C_FLAGS "--sysroot=${SYSROOT_PATH} -mfloat-abi=softfp")
> > SET(CMAKE_C_COMPILER "arm-wrs-linux-gnueabi-gcc")
And these both are really required for building just the most basic
executable ?
Currently cmake supports 1 additional extra argument, then you could do it
like this:
SET(CMAKE_C_COMPILER arm-wrs-linux-gnueabi-gcc "--sysroot=${SYSROOT_PATH}")
You can try if you get this working for you.
> One note: It looks like CMAKE_C_FLAGS should not be set in
> cross-tools.cmake which is assigned to -DCMAKE_TOOLCHAIN_FILE
> in command line. CMAKE_C_FLAGS for cross compiler should
> be surrounded by "if (CMAKE_CROSSCOMPILING)...endif" in
> CMakeLists.txt.
Yes, if you set compiler flags or similar things in CMakeLists.txt you should
always put this in appropriate IF() statements, so they are only executed for
the compiler they are intended for (not only when cross compiling, e.g. you
also need different flags whether you are using gcc or msvc).
Alex
More information about the CMake
mailing list