문제
누구든지 (일반 영어로) 벡터 통계 라이브러리 (수학 커널 라이브러리에 포함)를 Linux 용 Intel Fortran 컴파일러와 컴파일하는 Fortran 90 소스 코드에 연결하는 방법을 설명해 주시겠습니까?
내 makefile은 다음과 같이 보입니다.
f90comp = ifort
libdir = /home/project/
mklpath = /opt/intel/mkl/10.0.5.025/lib/32/
mklinclude = /opt/intel/mkl/10.0.5.025/include/
exec: AAA.o
$(f90comp) -o AAA -L$(mklpath) -I$(mklinclude) AAA.o -libmkl_ia32.a -lguide -lpthread
AAA.o: $(libdir)AAA.f90
$(f90comp) -c -L$(mklpath) -I$(mklinclude) $(libdir)AAA.f90 -libmkl_ia32.a -lguide -lpthread
다음 오류가 발생합니다.
ld: cannot find -libmkl_ia32.a
make: *** Error 1
그러나 파일은 지정된 디렉토리 (mklpath)에 존재합니다.
감사!!
해결책
파일은 실제로 어떻게 호출됩니까? -L 링커에 대한 것은 실제 파일 이름을 가져 오는 것이 아닙니다. [x]를 가져 오는 반면 파일을 찾을 수 있습니다.
실제 객체 파일 이름을 제공하려면 -L을 사용하지 않고 절대 경로를 사용하지 않고 -L : [filename]을 사용하지 않고 추가 할 수 있습니다.
나는 당신을 위해 그것을하는 올바른 방법을 가정합니다 -lmkl_ia32
하지만. 원시 파일 이름은 lib를 lib [x]라고 불리지 않는 경우에만 유용합니다. {so, a}
제휴하지 않습니다 StackOverflow