为什么 g++ -o 标志放在 g++ 之后不起作用?

问题描述 投票:0回答:1

我的老师在讲座中告诉我们,可以将 -o 标志放在任何地方,例如:

g++ -o a a.cpp
g++ a.cpp -o a
都很好,它们都将
a.cpp
编译成可执行文件
a

但是,当我在我的一个项目中尝试:

g++ -Wall –o blackjack blackjack.cpp card.cpp deck.cpp hand.cpp player.cpp rand.cpp
时,我收到以下错误消息:

/usr/bin/ld: cannot find –o: No such file or directory
/usr/bin/ld: cannot find blackjack: No such file or directory
collect2: error: ld returned 1 exit status

当我尝试

g++ -Wall blackjack.cpp card.cpp deck.cpp hand.cpp player.cpp rand.cpp -o blackjack
时,它成功编译了。

我第一次做错了什么吗?

g++
1个回答
0
投票

您能提供您的环境的具体情况吗?它看起来像一个 UNIX 系统,但是是哪一个呢? g++ 哪个版本?

我在 Ubuntu 22.04.3 上使用 g++ 11.4.0。我尝试了一个小示例程序,没有遇到任何问题:

g++ -Wall -o main check-prime.cpp main.cpp

如果您使用的是 Makefile 或其他项目控制文件,您可能需要检查它是否有非打印字符,例如使用。

cat -vet theFileName
。例如:如果您从 Microsoft 环境导入,您可能在某处嵌入了 字符。

--克洛德

© www.soinside.com 2019 - 2024. All rights reserved.