编译C ++时如何链接文件夹路径?

时间:2018-08-01 09:13:32

标签: c++ compiler-errors compilation clang++ dynet

我正在尝试编译以下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 ++,在我绑定的系统上不可用,因此我不得不更改它(不知道我在做什么。)。我正在尝试逐步进行。

0 个答案:

没有答案