/ usr / bin / ld: не удается найти -larmadillo - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь скомпилировать программное обеспечение из исходного кода, выполняя 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, как я могу решить эту проблему?

...