我正在尝试在Ubuntu上编译一个使用exp函数的程序,但遇到了一些问题。gcc报错如下:
selied@Apolo:~/Dropbox/practicas UAM/Neuro/practica3$ make
gcc -lm -o retropropagacion retropropagacion.o
retropropagacion.o: In function `main':
/home/selied/Dropbox/practicas UAM/Neuro/practica3/retropropagacion.c:177: undefined reference to `exp'
/home/selied/Dropbox/practicas UAM/Neuro/practica3/retropropagacion.c:186: undefined reference to `exp'
/home/selied/Dropbox/practicas UAM/Neuro/practica3/retropropagacion.c:297: undefined reference to `exp'
/home/selied/Dropbox/practicas UAM/Neuro/practica3/retropropagacion.c:306: undefined reference to `exp'
collect2: ld devolvió el estado de salida 1
make: *** [retropropagacion] Error 1
这里我给你展示我的makefile文件。
CC = gcc
LDLAGS = -lm
CFLAGS = -Wall -g
EXE = retropropagacion normalizar
OBJ =
INC =
compile : $(EXE)
clean :
@echo Borrando archivos temporales...
rm -f *~ *.o core $(EXE)
help :
@echo
backpropagation :
./retropropagacion entrada.txt 0 0 salida.txt
and :
./retropropagacion and.dat 0 0 salida_and.txt
$(EXE) : % : %.o $(OBJ)
$(CC) $(LDLAGS) -o $@ $@.o $(OBJ)
%.o : %.c $(INC)
$(CC) $(CFLAGS) -c $<
另外,我已经在头文件的顶部包含了 #include
,并且它在另一台计算机上运行正常。
您知道发生了什么吗?
LDFLAGS
放在目标文件前面?相同的代码在Fedora上可以正常工作,但在Ubuntu上无法编译。除了在每个Makefile中覆盖它之外,是否有任何控制此行为的方法? - Jakuje