0
当我有以下生成文件:未定义参考`dgesv_”编译
CC = gcc
ROOTPATH = /home/swagatam
LIB_PATH = $(ROOTPATH)/mylib/libf2c.a \
$(ROOTPATH)/mylib/blas_LINUX.a \
$(ROOTPATH)/mylib/lapack_LINUX.a -lm
INC_PATH = -I$(ROOTPATH)/myinclude
swadgesv : swadgesv.o
$(CC) $(LIB_PATH) swadgesv.o -o swadgesv
swadgesv.o : swadgesv.c
$(CC) $(INC_PATH) -c swadgesv.c
clean:
rm -f *.o
swadgesv.c是解决方案的形式AX = B的方程我需要3的头文件和3米的库链接到解决概率。但是,当我在终端中运行的Makefile它表明:
gcc -I/home/swagatam/myinclude -c swadgesv.c
gcc /home/swagatam/mylib/libf2c.a /home/swagatam/mylib/blas_LINUX.a /home/swagatam/mylib/lapack_LINUX.a -lm swadgesv.o -o swadgesv
swadgesv.o: In function `main':
swadgesv.c:(.text+0x0): multiple definition of `main'
/home/swagatam/mylib/libf2c.a(main.o):(.text.startup+0x0): first defined here
/home/swagatam/mylib/libf2c.a(main.o): In function `main':
(.text.startup+0xad): undefined reference to `MAIN__'
swadgesv.o: In function `main':
swadgesv.c:(.text+0xc1): undefined reference to `dgesv_'
collect2: ld returned 1 exit status
make: *** [swadgesv] Error 1
即使我改变LIB_PATH库的顺序它显示了不同的错误。我从我安装的clapack库调用函数dgsev。
@ Jonathan Leffler:非常感谢。我很感激。它终于奏效了。我不知道排序会如此重要。 – swagatam