c++ - 如何编写在源后添加库的makefile

标签 c++ makefile

我已获得以下 makefile:

CXX=g++
CXXFLAGS=-std=c++11 -g -O2
LDFLAGS=-ltbb

EXE=$(basename $(wildcard *.cc))

all: $(EXE)

clean:
    rm -fr $(EXE) *.dSYM

我是 makefile 的新手,为了让它在 Ubuntu 中工作,我需要修改它,使 LDFLAGS 在编译命令中位于源文件之后。我怎样才能做到这一点?我的尝试如下:

CXX=g++
CXXFLAGS=-std=c++11 -g -O2
LDFLAGS=-ltbb

SRCS=$(wildcard *.cc)
EXES=$(subst .cc,,$(SRCS))

all: $(EXES)
    $(CXX) $(CXXFLAGS) $(SRCS) $(LDFLAGS) -o $(EXES)

clean:
    rm -fr $(EXE) *.dSYM

最佳答案

应将库添加到 LDLIBS 而不是 LDFLAGS。在您的原始 makefile 中试试这个:

LDLIBS=-ltbb

参见 here供引用。

关于c++ - 如何编写在源后添加库的makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32449452/

相关文章:

makefile - 有没有什么好的工具可以检查 Makefile?

c++ - Windows 受限用户安装

c++ - 关于调试核心文件C++/linux的一些基本问题?

c++ - 使用 Boost.Asio 时确保有效对象生命周期的最佳方法是什么?

c - 对主要错误的 undefined reference

makefile - 如何捕获命令错误并在 makefile 中继续编译?

makefile - 在Cmake中运行自定义命令

c++ - 访问 union 的成员变量 : declared for uint64, 但想要 uint32 中的内容。 C++

C++ noob - 类作用域

linux - 没有创建 .o 文件的规则