我正在尝试编译以下GitHub存储库的dynet程序:jiyfeng/entitynlm
使用Makefile:
CC=CC
LIBS=-/appl/math/dynet -ldynet -lstdc++ -lm -lboost_serialization -lboost_filesystem -lboost_system -lboost_random -lboost_program_options
CFLAGS=-I/appl/math/dynet -I/appl/math/dynet/include/eigen3 -I./easyloggingpp/src -std=gnu++11 -Wall # -O3 -Wunused -Wreturn-type
OBJ=main.o util.o
all: entitynlm
%.o: %.cc
$(CC) $(CFLAGS) -c -o $@ $<
entitynlm: main.o util.o
$(CC) $(LIBS) $^ -o $@
clean:
rm -rf *.o *.*~ entitynlm
在程序中导入#include "dynet/globals.h"
之类的内容无效,因为编译器无法找到dynet构建文件夹。
我尝试通过将dynet
替换为全局路径/appl/math/dynet
来解决此问题。这适用于我要编译的代码-但现在我在无法更改的实际dynet构建中遇到了相同的错误,
In file included from main.cc:7:0:
/appl/math/dynet/include/dynet/nodes.h:4:25: fatal error: dynet/dynet.h: No such file or directory
#include "dynet/dynet.h"
^
compilation terminated.
make: *** [main.o] Error 1
所以我的问题是:
如何告诉编译器在遇到"appl/math/dynet/..."
时寻找#include "dynet/..."
而不是寻找名为dynet
的本地文件夹?
谢谢!
其他信息: 我绝对是c ++的初学者,并且使用各自的编译器。因此,请多加一些解释性的用语!另外,原始的Makefile使用了clang ++,在我绑定的系统上不可用,因此我不得不更改它(不知道我在做什么。)。我正在尝试逐步进行。