Tirsdag 05 juli 2011 16.25.49 skrev Yngve Inntjore Levinsen : > Dear developers, > > I am having what looks like a problem with library suffixes which I am not > able to figure out. > > Essentially, our project has an option which when turned on adds a "-static" > to the compiler flags. This then obviously need any libraries to be static if > one should use them. > > I then wanted to link against BLAS/LAPACK, but need to require that the > suffix is e.g. .a when on a linux system. First I tried to set the > "BLA_STATIC". However, it seems that even though I have a libblas.a in my > /usr/lib/, it does not find it. It should be noted that libblas.a is a > symbolic link to libgoto2.a which is another symbolic link to > libgoto2_penrynp-r1.13.a. Unsure if this causes any problems (?). > > Another user reported that instead of failing to find the libraries, it just > went on using the dynamic libraries which he had on his system. Looking at > how BLA_STATIC is defined, that makes sense if he didn't have the libblas.a > in his system. Linking then failed obviously. > > I figured in our case it would be better to just set the > CMAKE_FIND_LIBRARY_SUFFIXES ourselves, instead of using BLA_STATIC. However, > I still have the problem that it does not find my libblas.a file. Anyone > knows what I am doing wrong? I am using cmake version 2.8.4, and he is using > Debian Sid (unsure which version of cmake, but I can check if it is > important). > > Cheers, > Yngve >
Dear all, I found the problem finally. What I did was mixing strings and lists (as I understand it), so I set the CMAKE_FIND_LIBRARY_SUFFIXES in this manner: set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") That did not work. Difficult for you to know that was what I did in any case, sorry for not adding that info in the first mail. Removing the "", and then it worked: set(CMAKE_FIND_LIBRARY_SUFFIXES .a) In FindBLAS.cmake I find the following: if(BLA_STATIC) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so") endif(BLA_STATIC) I believe the second line should be set(CMAKE_FIND_LIBRARY_SUFFIXES .a .so) instead? (same fix goes for APPLE/WIN32 part) Or is there some other difference between lists and strings which I am unable to comprehend? Cheers, Yngve
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake