gpt4 book ai didi

c++ - 使用库的 Makefile

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:37 26 4
gpt4 key购买 nike

我在 Xcode 中做了一个项目,它只在 1 个 c++ 文件中实现了一个算法。要编译它需要一个库,该库位于另一个目录中名为 libgambit 的目录中。目录结构如下所示:

lib/
libgambit/libgambit.cc
libgambit.h
game.cc
game.h
...
src/Game\ Theoretic\ Analysis/convertion.cc
convertion.h
Makefile

所以我需要的是一个 makefile,它首先构建 libgambit 中的所有内容,然后使用由此产生的目标文件来构建和链接 conversion.cc。可执行文件应与生成文件位于同一文件夹中。

这似乎是一个非常简单的问题,但我现在已经为此苦恼了 2 天。

最佳答案

有不止一种方法可以做到这一点。这是一个粗略但有效的方法:

LIBSRCS := $(wildcard $(PATHTOLIB)/lib/libgambit/*.cc)
LIBOBJS := $(LIBSRCS:.cc=.o)

convertion: convertion.o $(LIBOBJS)
@g++ -Wall $^ -o $@

%.o: %.cc
@g++ -Wall -Ilib/libgambit -c $< -o $@

这不能很好地跟踪依赖关系(如果您更改头文件,Make 不会注意到必须重建某些对象),但现在已经足够好了。如果您想尝试高级依赖项处理,请告诉我们。

关于c++ - 使用库的 Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9582948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com