Hi All,
I'm brand-new to cmake, and have run into a problem cross compiling for an
Intel embedded platform:
Make complains about missing file 'curl/curl.h' when compiling against an Intel
SDK for linux. 'curl/curl.h' resides in the cross-compile toolchain under
[toolchain-folder]/include/curl/curl.h. The toolchain file 'toolchain.cmake'
resides at the root of the SDK (toolchain.cmake attached to end).
The build is configured with the usual 'cmake
-DCMAKE_TOOLCHAIN_FILE=[path-to-toolchain] ..' from a 'build' folder in the src
directory of my application tree. cmake finds the compiler toolchain (gcc, gxx,
ar, etc.) and completes the configuration all good (cmake output attached to
end). The problem comes in when make is called. The strange thing is, the
variable 'CURL_HEADER' contains the path of curl/curl.h if the following is
added to the CMakeLists.txt:
FIND_FILE(
CURL_HEADER
curl/curl.h
ONLY_CMAKE_FIND_ROOT_PATH
)
This means that cmake can 'see' the file that make is complaining about. My
question is why, if cmake can see the file, does make complain that it cannot
find the file? Something must be missing with the configuration of the
cross-compilation.
For reference, the program compiles perfectly on the host system, without the
-DCMAKE_TOOLCHAIN_FILE flag. The host system is Fedora 13 with curl and its
headers installed.
I've also attached the important bits of the make output to the end for
reference.
Any help is greatly appreciated.
Many thanks and kind regards,
Thomas Walwyn
#------------------------toolchain.cmake----------------------------------#
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER [path-to-compiler]/[platform]-linux-gcc)
SET(CMAKE_FIND_ROOT_PATH [path-to-toolchain-folder])
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
#------------------------cmake output----------------------------------#
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: [path-to-compiler]/[platform]-linux-gcc
-- Check for working C compiler: [path-to-compiler]/[platform]-linux-gcc --
works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: [path-to-compiler]/[platform]-linux-c++
-- Check for working CXX compiler: [path-to-compiler]/[platform]-linux-c++ --
works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: [path-to-application-folder]/build
#-----------------------part of make which gives error------------------#
cd [path-to-application-source] && [path-to-compiler]/[platform]-linux-gcc
-DIPFrontend_EXPORTS -fPIC -I[path-to-application-source]/includes -o
[path-to-application-source]/[source-file].c.o -c
[path-to-application-source]/[source-file]/[path-to-application-source]/[source-file].c
[path-to-application-source]/[source-file].c:50:23: error: curl/curl.h: No such
file or directory
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake