已经修好了
我有5个文件:cdouble.c cdouble.h cmatrix.c cmatrix.h和main.c
在我的cdouble.c中我有:
#include "cdouble.h"
在我的cmatrix.c中我有:
#include "cmatrix.h"
(在我的cmatrix.h文件中,我得到了:#include "cdouble.h"
在我的主文件中,我有:
#include "cmatrix.h"
我需要在我大学的unix(?)服务器上编译它。我试过了:
gcc -c cmatrix.c
gcc cmatrix.o main.c
但我得到了许多“未定义的参考错误”
$ gcc -c cmatrix.c
gcc cmatrix.o main.c:/tmp/ccZD6esL.o:在函数
ishermitian
中: main.c :(。text + 0x7b):对cConj
的未定义引用 main.c :(。text + 0x8b):对getCDoubleImag
的未定义引用 main.c :(。text + 0xa0):对getCDoubleReal
的未定义引用 main.c :(。text + 0xde):对getCDoubleImag
的未定义引用 main.c :(。text + 0xef):对getCDoubleImag
的未定义引用 main.c :(。text + 0x111):对getCDoubleReal
的未定义引用 main.c :(。text + 0x122):对getCDoubleReal
的未定义引用 /tmp/ccZD6esL.o:在函数scancdouble
中: main.c :(。text + 0x203):对newCDouble
的未定义引用 /tmp/ccZD6esL.o:在函数main
中: main.c :(。text + 0x2d8):对getCDoubleImag
的未定义引用 main.c :(。text + 0x2fc):对getCDoubleReal
的未定义引用 collect2:错误:ld返回1退出状态
您需要编译cdouble.c并链接其.o文件。例如:
gcc -c cmatrix.c
gcc -c cdouble.c
gcc main.c cmatrix.o cdouble.o
或者,更简单地说:
gcc main.c cmatrix.c cdouble.c