I am trying to do some crosscompilation using cmake. Some are easy with all the examples on Internet, I managed to crosscompile my library on Linux (x86 and ARM), Windows an
Without having your environment nor the error message it's not easy to tell the actual root cause but here are two of the common causes and respective fixes:
If you don't have a complete toolchain file created for your custom environment - so CMake can't link a simple test program - you can try the relatively new (version 3.6) global CMake variable named CMAKE_TRY_COMPILE_TARGET_TYPE.
So just add the following:
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
Then CMake would just try to build a static library.
To have only the most common GCC compiler variables set and have only some basic checks, try:
SET(CMAKE_SYSTEM_NAME Generic)
See CMake Cross Compiling: Setting up the system and toolchain:
If your target is an embedded system without OS set CMAKE_SYSTEM_NAME to "Generic"
References
Commandline:
cmake ... \ -DCMAKE_C_COMPILER_FORCED=TRUE \ -DCMAKE_CXX_COMPILER_FORCED=TRUE
or
CMakeLists.txt
... set(CMAKE_C_COMPILER_FORCED TRUE) set(CMAKE_CXX_COMPILER_FORCED TRUE) ...
Works for me.