簡體   English   中英

盡管鏈接到數學庫,但未定義對`sqrt`的引用

[英]Undefined reference to `sqrt` despite linking to math library

我正在嘗試從英特爾MKL庫( /opt/intel/mkl/examples/versionqueryc/ )編譯示例程序。 我將源代碼(C文件)復制到一個新目錄。 然后我去嘗試用CMake構建這個例子。

在調試過程中,我在嘗試使用以下命令時遇到困難(現在與cmake隔離)。

它沒有找到數學庫,但我在鏈接中包含了-lm 那么發生了什么?

:~/devel/mkl/MKL Test/build$  /usr/bin/gcc -m64 CMakeFiles/mkltest.dir/main.c.o \
>     -o mkltest    -rdynamic -L/home/myuser/src/intel/mkl/lib/intel64 \
>     -lm  -lmkl_intel_lp64 -lmkl_sequential -lmkl_core  -lmkl_cdft_core \
>     -lmkl_scalapack_lp64 \
>     /home/myuser/src/intel/lib/intel64/libiomp5.so \
>     -Wl,-rpath,/home/myuser/src/intel/mkl/lib/intel64:/home/myuser/src/intel/lib/intel64 
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `logf'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `atan2'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `sin'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `fabs'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `exp'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `sqrtf'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `cos'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `sqrt'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_sequential.so: undefined reference to `log'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `pow'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `log10'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `ceil'
/home/myuser/src/intel/mkl/lib/intel64/libmkl_core.so: undefined reference to `expf'
collect2: ld returned 1 exit status

-lm作為最后一個參數,鏈接時參數的順序很重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM