c++ - Portable way of linking libgfortran with CMAKE -
one of executables requires libgfortran.so. typically i'd add -lgfortran switch compile line , links automatically g++. however, i'm trying find library cmake using:
find_library(gfortran_library names gfortran) target_link_libraries(ncorr_test ${gfortran_library}) however, fails find library. turns out way has worked far if include entire library name so:
find_library(gfortran_library names libgfortran.so.3) target_link_libraries(ncorr_test ${gfortran_library}) then, link properly:
/usr/bin/c++ ... /usr/lib/x86_64-linux-gnu/libgfortran.so.3 ... however, including whole .so.3 not portable. know of better way this? typically libraries need use installed in /usr/local/lib , searching library name without "lib" , extension works (i.e. find_library(fftw_library names fftw3) find libfftw3.a in /usr/local/lib fine).
edit:
find_library(gfortran_library names libgfortran.so) not work either. libgfortran.so.3 has worked far.
using locate libgfortran outputs:
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.so /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.spec /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortranbegin.a /usr/lib/x86_64-linux-gnu/libgfortran.so.3 /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0 /usr/local/matlab/r2014a/sys/os/glnxa64/libgfortran.so.3 /usr/local/matlab/r2014a/sys/os/glnxa64/libgfortran.so.3.0.0 /usr/share/doc/libgfortran-4.8-dev /usr/share/doc/libgfortran3 /var/lib/dpkg/info/libgfortran-4.8-dev:amd64.list /var/lib/dpkg/info/libgfortran-4.8-dev:amd64.md5sums /var/lib/dpkg/info/libgfortran3:amd64.list /var/lib/dpkg/info/libgfortran3:amd64.md5sums /var/lib/dpkg/info/libgfortran3:amd64.postinst /var/lib/dpkg/info/libgfortran3:amd64.postrm /var/lib/dpkg/info/libgfortran3:amd64.shlibs /var/lib/dpkg/info/libgfortran3:amd64.symbols edit2:
for i'll require user copy libgfortran.a on usr\local\lib directory
looks either miss dev package on linux distribution, should install .so link, or path such link located missing when cmake lookup. try find lingfortran.so link, located same place .so.3 is, if cannot find install missing dev package, if can check why path not included in cmake.
Comments
Post a Comment