Как связать путь к папке при компиляции C++?

Я пытаюсь скомпилировать программу dynet из этого репозитория GitHub: https://github.com/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 ответов

Другие вопросы по тегам