Как связать путь к папке при компиляции 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++, который недоступен в системе, с которой я связан, поэтому мне пришлось его изменить (не зная, что я делаю..). Я пытаюсь пройти через это шаг за шагом.