Я пытаюсь скомпилировать программное обеспечение из исходного кода, выполняя make со следующим файлом:
#make file for atlas
SRC = $(wildcard *.cpp) $(wildcard *.C) $(wildcard Tests/*.cpp) $(wildcard Simulations/*.cpp) $(wildcard Vcf/*.cpp) $(wildcard Recalibration/*.cpp) $(wildcard PopulationTools/*.cpp) $(wildcard GLF/*.cpp) $(wildcard bamtools/api/*.cpp) $(wildcard bamtools/api/algorithms/*.cpp) $(wildcard bamtools/api/internal/bam/*.cpp) $(wildcard bamtools/api/internal/index/*.cpp) $(wildcard bamtools/api/internal/io/*.cpp) $(wildcard bamtools/api/internal/sam/*.cpp) $(wildcard bamtools/api/internal/utils/*.cpp) $(wildcard bamtools/utils/*.cpp)
GIT_HEADER = gitversion.cpp
OBJ = $(SRC:%.cpp=%.o)
BIN = atlas
.PHONY : all
all : $(BIN)
ifeq ($(ARM),)
BINFLAG = -lz -larmadillo
OBJFLAG = -std=c++1y
else
BINFLAG = -lz -lblas -llapack
OBJFLAG = -I/share/apps/armadillo-9.100.5/include -DARMA_DONT_USE_WRAPPER -lblas -llapack -std=c++1y
endif
$(BIN): $(GIT_HEADER) $(OBJ)
$(CXX) -O3 -o $(BIN) $(OBJ) $(BINFLAG)
$(GIT_HEADER): .git/HEAD .git/COMMIT_EDITMSG
echo "#include \"gitversion.h\"" > $@
echo "std::string getGitVersion(){" >> $@
echo "return \"$(shell git rev-parse HEAD)\";" >> $@
echo "}" >> $@
.git/COMMIT_EDITMSG :
touch $@
%.o: %.cpp
$(CXX) -O3 -c -I. -L/share/apps/armadillo-9.100.5/include -Ibamtools -ITests -I/share/apps/armadillo-9.100.5/include -ISimulations -IVcf -IRecalibration -IPopulationTools $(OBJFLAG) $< -o $@
.PHONY : clean
clean:
rm -rf $(BIN) $(OBJ)
Когда я запускаю make, он возвращает следующее:
/usr/bin/ld: cannot find -larmadillo
collect2: error: ld returned 1 exit status
make: *** [atlas] Error 1
Я попытался добавить к флагам компилятора, но ошибка не исчезла.
-I/share/apps/armadillo-9.100.5/include
Если у меня нет прав sudo, как я могу решить эту проблему?