如何构建g ++ Makefile

时间:2014-06-27 21:08:14

标签: makefile g++

上次我问过如何使用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

0 个答案:

没有答案