为何g++的-o选项在部分放置位置下出现编译报错?
问题分析:g++编译命令报错的原因
你第一次执行的命令里,–o用的是全角长破折号(和半角短减号-视觉相似,但属于完全不同的字符),而g++仅识别半角的-作为命令选项的前缀符号。
当g++识别到这个全角破折号开头的–o时,会将其判定为需要编译的源文件名称,自然找不到对应的文件,于是抛出cannot find –o的错误;后续的blackjack也被当成了不存在的源文件,同样触发错误。
把命令里的–o替换成正确的半角-o后,不管放在命令的哪个位置,比如:
g++ -Wall -o blackjack blackjack.cpp card.cpp deck.cpp hand.cpp player.cpp rand.cpp
都能正常编译。你第二次换位置后成功,本质是重新输入时用了正确的半角减号,和-o的位置无关——讲师说的-o选项可以放在任意位置是完全正确的。
内容的提问来源于stack exchange,提问作者csy
相关产品推荐
相关产品推荐

