gpt4 book ai didi

compilation - g++: fatal error :无法使用-c,-S或-E来指定多个文件的-o

转载 作者:行者123 更新时间:2023-12-04 14:02:28 28 4
gpt4 key购买 nike

我正在尝试使用其他库文件来编译库文件。我在我的makefile中使用以下行来创建gameobject.o:

lib/gameobject.o: src/gameobject.cpp src/vector.hpp lib/objectevent.o lib/sprite.o
g++ $^ -c -o $@ $(SFML_FLAGS)

所有依赖项都可以正确编译,但是在尝试编译gameobject.o时出现以下错误:
g++: fatal error: cannot specify -o with -c, -S or -E with multiple files

我对使用make/separation编译还是有点陌生​​,所以我不太确定该怎么做。我是否只需要编译而不设置输出?我是否必须不使用任何其他.o文件来编译gameobject.o?如果是这样,如果您不能与其他库一起编译库,那么对于大型对象而言,编译时间会不会变得很大?还是我只是读这个错误完全错误?

最佳答案

您不是在这里构建库文件。 .o文件是一个目标文件。通常,每个源文件只有一个目标文件。当使用编译器的-c选项时,它将获取一个源文件并将其编译为一个目标文件。您不能将其他目标文件添加到现有的目标文件中,因此将.o.cpp文件都添加到带有-c的同一编译器行中将行不通。

如果您想创建一个库,那将类似于libfoo.a(此处的“a”代表“存档”)。如果要创建可执行文件,也可以这样做。

在我们描述如何获得结果之前,您需要更清楚地知道您想要什么结果。

关于compilation - g++: fatal error :无法使用-c,-S或-E来指定多个文件的-o,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177790/

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