[CMake] CheckLibraryExists behaviour with different compilers

victor sv victorsv at gmail.com
Mon Apr 20 06:28:14 EDT 2015


Thanks Nils for que quick response!

The error log is as follows (summarized):

Determining if the function METIS_SetDefaultOptions exists in the metis
failed with the following output:
Change Dir: /home/vsande/fempar/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec4124725466/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec4124725466.dir/build.make
CMakeFiles/cmTryCompileExec4124725466.dir/build
make[1]: se ingresa al directorio
«/home/vsande/fempar/build/CMakeFiles/CMakeTmp»
/usr/bin/cmake -E cmake_progress_report
/home/vsande/fempar/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object
CMakeFiles/cmTryCompileExec4124725466.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=METIS_SetDefaultOptions   -o
CMakeFiles/cmTryCompileExec4124725466.dir/CheckFunctionExists.c.o   -c
/usr/share/cmake-2.8/Modules/CheckFunctionExists.c
Linking C executable cmTryCompileExec4124725466
/usr/bin/cmake -E cmake_link_script
CMakeFiles/cmTryCompileExec4124725466.dir/link.txt --verbose=1
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=METIS_SetDefaultOptions
CMakeFiles/cmTryCompileExec4124725466.dir/CheckFunctionExists.c.o  -o
cmTryCompileExec4124725466
-L/home/vsande/Descargas/metis-5.1.0/build/libmetis -rdynamic -lmetis -lm
-Wl,-rpath,/home/vsande/Descargas/metis-5.1.0/build/libmetis
/home/vsande/Descargas/metis-5.1.0/build/libmetis/libmetis.a(gklib.c.o): En
la función `libmetis__icopy':
/home/vsande/Descargas/metis-5.1.0/libmetis/gklib.c:(.text+0x2b1f):
referencia a `_intel_fast_memmove' sin definir
...
/home/vsande/Descargas/metis-5.1.0/build/libmetis/libmetis.a(memory.c.o):
En la función `gk_zcopy':
/home/vsande/Descargas/metis-5.1.0/GKlib/memory.c:(.text+0x289f):
referencia a `_intel_fast_memmove' sin definir
/home/vsande/Descargas/metis-5.1.0/build/libmetis/libmetis.a(memory.c.o):/home/vsande/Descargas/metis-5.1.0/GKlib/memory.c:(.text+0x312f):
más referencias a `_intel_fast_memmove' sin definir a continuación
/home/vsande/Descargas/metis-5.1.0/build/libmetis/libmetis.a(error.c.o): En
la función `errexit':
/home/vsande/Descargas/metis-5.1.0/GKlib/error.c:(.text+0x45b): referencia
a `__intel_sse2_strlen' sin definir
collect2: error: ld returned 1 exit status
make[1]: *** [cmTryCompileExec4124725466] Error 1
make[1]: se sale del directorio
«/home/vsande/fempar/build/CMakeFiles/CMakeTmp»
make: *** [cmTryCompileExec4124725466/fast] Error 2

After googling and reading this:

http://www.opal-rt.com/kb-article/undefined-reference-intel-fast-memset-build-error-related-rte-delay

I try to link against libirc.a and libimf.a and it works fine. I do other
test compiling a shared METIS library with Intel compilers and it works too.

There is something that I'm not well understanding ... If I build a static
library, even with Intel compilers, shouldn't this library contain all the
needed symbols?

Thanks again :)
Víctor

2015-04-20 11:55 GMT+02:00 Nils Gladitz <nilsgladitz at gmail.com>:

> On 04/20/2015 11:47 AM, victor sv wrote:
>
>       CHECK_LIBRARY_EXISTS(metis METIS_SetDefaultOptions ${METIS_PATH}
>> HAVE_METIS_SETDEFAULTOPTIONS)
>>
>
> [...]
>
>
>> But if I build my project with GNU compilers and METIS still compiled
>> with Intel compilers, CMake says:
>>
>>
>> Looking for METIS_SetDefaultOptions in metis - not found
>>
>
> I'd first check CMakeFiles/CMakeError.log to see why it actually failed.
>
> Nils
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150420/93130a58/attachment.html>


More information about the CMake mailing list