I'm trying to use CMake to use a local, 32-bit version of cURL instead of the installed 64-bit one. When I use the CMake command find_library
it's still returning the path at /usr/lib/x86_64-linux-gnu/libcurl.so
. I've tried using the flags NO_DEFAULT_PATH and NO_SYSTEM_ENVIRONMENT_PATH but still can't force it to look locally first. My code is below:
find_library(MYCURL NAMES libcurl
HINTS ${MY_CURL_DIR}
NO_SYSTEM_ENVIRONMENT_PATH
NO_DEFAULT_PATH)
Where I've specified (and verified) that ${MY_CURL_DIR}
is looking in the correct place. Any ideas?
Are you deleting your
CMakeCache.txt
between attempts? Or more specifically, theMYCURL
entry in yourCMakeCache.txt
. (This file should exist in the directory you invoke CMake from).If
find_library
successfully finds the library, further executions of CMake don't retry to find the same library.In your command, the
NO_SYSTEM_ENVIRONMENT_PATH
option is superfluous -NO_DEFAULT_PATH
stops any paths other than${MY_CURL_DIR}
being searched.Also, you probably don't want to search for "libcurl", just "curl" will do. CMake prepends "lib" for you on UNIX systems. For more info run
cmake --help-variable CMAKE_FIND_LIBRARY_PREFIXES
If you want to change the default caching behaviour of
find_library
and force a search every time CMake is run, useunset
first: