[CMake] CHECK_FUNCTION_EXISTS
George Neill
georgen at neillnet.com
Sat Apr 12 06:21:25 EDT 2008
Hi CMakers,
I feel rather stupid asking this question, but here I go. I have the
following simple CMakeLists.txt file (on the windows platform, default
MSVC compiler install).
C:\Documents and Settings\gneill\Desktop\tmp>type CMakeLists.txt
PROJECT(GEORGE C)
include(CheckFunctionExists)
CHECK_FUNCTION_EXISTS(Sleep HAVE_SLEEP)
CHECK_FUNCTION_EXISTS(strtod HAVE_STRTOD)
Here's the result,
C:\Documents and Settings\gneill\Desktop\tmp>cmake .
-- Check for working C compiler: C:/Program Files/Microsoft Visual
Studio .NET 2003/Vc7/bin/cl.exe
-- Check for working C compiler: C:/Program Files/Microsoft Visual
Studio .NET 2003/Vc7/bin/cl.exe -- works
-- Check size of void*
-- Check size of void* - done
-- Looking for Sleep
-- Looking for Sleep - not found
-- Looking for strtod
-- Looking for strtod - found
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Documents and
Settings/gneill/Desktop/tmp
Is there some trick to making it find Sleep() (which is located in
windows.h/kernel32.lib)? It's appears to be able to find strtod which
is in the CRT.
I have also tried adding (below) with no luck,
SET(CMAKE_REQUIRED_LIBRARIES kernel32 user32)
Here's what I am seeing in CMakeFiles\CMakeError.log
Determining if the function Sleep exists failed with the following output:
Microsoft (R) Development Environment Version 7.10.6030.
Copyright (C) Microsoft Corp 1984-2001. All rights reserved.
------ Build started: Project: cmTryCompileExec, Configuration: Debug
Win32 ------
Compiling...
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
cl /Od /D "WIN32" /D "_WINDOWS" /D "CHECK_FUNCTION_EXISTS=Sleep" /D "_DEBUG" /D
"CMAKE_INTDIR=\"Debug\"" /D "_MBCS" /FD /RTCs /MDd /GS /Fo"cmTryCompileExec.dir\
Debug\\" /Fd"C:/Documents and Settings/gneill/Desktop/tmp/CMakeFiles/CMakeTmp/De
bug/cmTryCompileExec.pdb" /W3 /c /Zi /TC /Zm1000
"\Program Files\CMake 2.4\share\cmake-2.4\Modules\CheckFunctionExists.c"
CheckFunctionExists.c
Linking...
CheckFunctionExists.obj : error LNK2019: unresolved external symbol
_Sleep referenced in function _main
Debug\cmTryCompileExec.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\Documents and
Settings\gneill\Desktop\tmp\CMakeFiles\CMakeTmp\cmTryCompileExec.dir\Debug\BuildLog.htm"
cmTryCompileExec - 2 error(s), 0 warning(s)
---------------------- Done ----------------------
Build: 0 succeeded, 1 failed, 0 skipped
Maybe I just have something misconfigured (or missing something
simple) .. any suggestions?
TIA,
George.
More information about the CMake
mailing list