c++ - 修改 Makefile 添加 GSL 库

标签 c++ c++11 makefile gsl

我有以下 makefile 并且还想使用 GSL 库。你知道我应该如何进行吗? 我暂时找不到编译代码的正确方法。

INCLDIR := include
OBJDIR  := obj
SRCDIR  := src
BINDIR  := bin

CC      := g++
VPATH   :=
LDFLAGS := -L/home/path/gsl/lib
LIBRARY :=
CFLAGS  := -g -Wall -I $(INCLDIR)

#Source and object files (automatic)
SRCS = $(wildcard $(SRCDIR)/*.cpp)
OBJS = $(subst $(SRCDIR)/,$(OBJDIR)/, $(subst .cpp,.o, $(SRCS)))

# Define here your main source files separated by spaces (without suffix!)
EXEC = main

#Phony = do not represent a file
#.PHONY: all
all : makedir $(EXEC)

# For multiple binaries
$(EXEC) : %: %.cpp $(OBJS)
    $(CC) $(CFLAGS) -o $(BINDIR)/$@ $^

$(OBJDIR)/%.o : $(SRCDIR)/%.cpp
    $(CC) $(CFLAGS) -c -o $@ $<

#Clean: delete every binaries and object files
.PHONY: clean
clean :
    rm -rf $(OBJDIR)/*
    rm -rf $(BINDIR)/*
#Building folders (-p : no error if folder do not exist)
.PHONY: makedir
makedir :
    mkdir -p $(BINDIR)
    mkdir -p $(OBJDIR)

最佳答案

您的 LDFLAGS 缺少 -lgsl。到目前为止,您只告诉了链接器,除了默认目录之外还应该在哪里搜索。

关于c++ - 修改 Makefile 添加 GSL 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50318482/

相关文章:

c++ - 当元素被包裹在智能指针中时,std::set 是否仍然排序?

c - "Undefined reference to main"与 main 在单独的脚本/规则中

macos - 带有源的 Makefile 出现错误 `No such file or directory`

c++ - 双二分查找算法

c++ - 如何使用 boost asio 接收发送到 255.255.255.255 的 UDP 广播?

c++ - BOOST_PP_SEQ_FOLD_LEFT 是如何工作的?

c++ - 在 C++ 中定义类字符串常量?

c++ - TBB 并发无序映射导致段错误

c++11 - 为什么在 C++0x 中没有为 std::weak_ptr 定义 std::hash ?

makefile - 获取 makefile 以从同一个文件构建两个目标,但具有不同的标志