<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
<br>
it is an interesting problem. If you tell the gcc to use the math
library, it works. The interesting thing is the way of testing.<br>
<br>
The cmake macro simply declares a function foo with the signature<br>
&nbsp;&nbsp;&nbsp; char foo();<br>
and call this one without arguments. If you tell cmake to link against
the math library, it works.<br>
<br>
But, if you simply call sqrt(5.0) the library is ommitted (I think the
gcc optimizes the code?)<br>
<br>
So, if you always know the math library for the specific platform, you
should use it.<br>
<br>
Hth,<br>
<br>
Andreas<br>
<br>
Am 19.09.2012 17:08, schrieb Jack Stalnaker:
<blockquote
 cite="mid:CAOGUJ6HQ_fcJiV1Re7sJoKQezcXk=e4pxv6e9cidmueSEBkfWg@mail.gmail.com"
 type="cite">Hi,
  <div><br>
  </div>
  <div>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,</div>
  <div><br>
  </div>
  <div>include (CheckFunctionExists)</div>
  <div>check_function_exists(sqrt HAVE_SQRT)</div>
  <div><br>
  </div>
  <div>cmake fails to find sqrt (or pow, log, exp, etc). In the sqrt
case, CMakeError.log shows&nbsp;</div>
  <div><br>
  </div>
  <div>/usr/share/cmake/Modules/CheckFunctionExists.c:3: warning:
conflicting types for built-in function 'sqrt'</div>
  <div>Linking C executable cmTryCompileExec</div>
  <div>/usr/bin/cmake -E cmake_link_script
CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1</div>
  <div>/usr/bin/gcc -DCHECK_FUNCTION_EXISTS=sqrt -fPIC
CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o
cmTryCompileExec -rdynamic&nbsp;</div>
  <div>CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o: In
function 'main':&nbsp;</div>
  <div>CheckFunctionExists.c:(.text+0x15): undefined reference to 'sqrt'</div>
  <div><br>
  </div>
  <div>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?</div>
  <div><br>
  </div>
  <div>Thanks</div>
  <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
--

Powered by <a class="moz-txt-link-abbreviated" href="http://www.kitware.com">www.kitware.com</a>

Visit other Kitware open-source projects at <a class="moz-txt-link-freetext" href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a>

Please keep messages on-topic and check the CMake FAQ at: <a class="moz-txt-link-freetext" href="http://www.cmake.org/Wiki/CMake_FAQ">http://www.cmake.org/Wiki/CMake_FAQ</a>

Follow this link to subscribe/unsubscribe:
<a class="moz-txt-link-freetext" href="http://www.cmake.org/mailman/listinfo/cmake">http://www.cmake.org/mailman/listinfo/cmake</a></pre>
</blockquote>
<br>
</body>
</html>