上次我问过如何使用CLAPACK。 Using CLAPACK undefined reference error
之后我尝试将所有内容分开来进行更大的项目。
现在我有“blitzLA.cpp”“InterfaceCLAPACK.cpp”“InterfaceCLAPACK.hpp”
我可以通过调用
成功地使其工作g++ -Wall -g InterfaceCLAPACK.cpp blitzLA.cpp -llapack -lblas -lf2c -o blitzLA
但是如果我做Makefile,它会给我一些错误..我的makefile如下所示。
CC = g++
CFLAGS = -Wall -g
linker = -llapack -lblas -lf2c
blitzLA: blitzLA.o InterfaceCLAPACK.o
${CC} ${CFLAGS} InterfaceCLAPACK.o blitzLA.o -o blitzLA
blitzLA.o: blitzLA.cpp InterfaceCLAPACK.hpp
${CC} ${CFLAGS} ${linker} -c blitzLA.cpp
InterfaceCLAPACK.o: InterfaceCLAPACK.cpp InterfaceCLAPACK.hpp
${CC} ${CFLAGS} ${linker} -c InterfaceCLAPACK.cpp
clean:
rm -rf *.o blitzLA
我想问题是我在哪里留下“-llapack -lblas -lf2c”..现在我得到下面显示的错误。
g++ -Wall -g -llapack -lblas -lf2c -c blitzLA.cpp
g++ -Wall -g -llapack -lblas -lf2c -c InterfaceCLAPACK.cpp
g++ -Wall -g InterfaceCLAPACK.o blitzLA.o -o blitzLA
InterfaceCLAPACK.o: In function `quantfin::interfaceCLAPACK::SolveLinear(blitz::Array<double, 2>
这里有很多东西..
/home/baozi/Dropbox/Linux/LinearAlgebra/InterfaceCLAPACK.cpp:64: undefined reference to `dgttrf_'
/home/baozi/Dropbox/Linux/LinearAlgebra/InterfaceCLAPACK.cpp:67: undefined reference to `dgttrs_'
collect2: error: ld returned 1 exit status
make: *** [blitzLA] Error 1
我哪里出错..帮助PLZ