[CMake] check_function_exists failing for gcc built-in functions?

Jack Stalnaker jack.stalnaker at gmail.com
Wed Sep 19 11:08:08 EDT 2012


Hi,

I'm having trouble with check_function_exists() when it comes to built-in
functions in gcc. If I create just a simple C++ file with a call to sqrt()
or pow() and have a CMakeLists.txt with the following lines,

include (CheckFunctionExists)
check_function_exists(sqrt HAVE_SQRT)

cmake fails to find sqrt (or pow, log, exp, etc). In the sqrt case,
CMakeError.log shows

/usr/share/cmake/Modules/CheckFunctionExists.c:3: warning: conflicting
types for built-in function 'sqrt'
Linking C executable cmTryCompileExec
/usr/bin/cmake -E cmake_link_script
CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=sqrt -fPIC
CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o cmTryCompileExec
-rdynamic
CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o: In function
'main':
CheckFunctionExists.c:(.text+0x15): undefined reference to 'sqrt'

What is the workaround for this, in the situation where the function is
built in, but I want to test for it on other platforms?

Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120919/929d253b/attachment.htm>


More information about the CMake mailing list