cmake 3.10无法在内部测试blas库

时间:2018-04-26 17:51:14

标签: cmake ld blas

我无法使用cmake工作我的blas库。我有arch-linxux,blas和cmake都安装了pacman。无法理解问题在哪里:-(。我让cmake打印出宏CHECK_FORTRAN_FUNCTION_EXISTS的输出,因为它在那里失败了。也许我没有正确配置ld?

我的简单测试CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)
project(Test C Fortran)
find_package(BLAS)

输出错误部分:

-- Looking for Fortran sgemm
-- Change Dir: /home/jiri/test_lapack/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_486fc/fast"
/usr/bin/make -f CMakeFiles/cmTC_486fc.dir/build.make CMakeFiles/cmTC_486fc.dir/build
make[1]: Entering directory '/home/jiri/test_lapack/CMakeFiles/CMakeTmp'
Building Fortran object CMakeFiles/cmTC_486fc.dir/testFortranCompiler.f.o
/usr/bin/gfortran    -c /home/jiri/test_lapack/CMakeFiles/CMakeTmp/testFortranCompiler.f -o CMakeFiles/cmTC_486fc.dir/testFortranCompiler.f.o
Linking Fortran executable cmTC_486fc
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_486fc.dir/link.txt --verbose=1
/usr/bin/gfortran      CMakeFiles/cmTC_486fc.dir/testFortranCompiler.f.o  -o cmTC_486fc /usr/local/lib64/libblas.a 
/usr/bin/ld: /usr/local/lib64/libblas.a(sgemm.f.o): relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib64/libblas.a(xerbla.f.o): relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_486fc.dir/build.make:99: cmTC_486fc] Error 1
make[1]: Leaving directory '/home/jiri/test_lapack/CMakeFiles/CMakeTmp'
make: *** [Makefile:126: cmTC_486fc/fast] Error 2

-- Looking for Fortran sgemm - not found

0 个答案:

没有答案