错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook [重复]

Posted

技术标签:

【中文标题】错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook [重复]【英文标题】:error: linker command failed with exit code 1 (use -v to see invocation) : on Macbook [duplicate] 【发布时间】:2020-02-08 14:43:09 【问题描述】:

我之前在终端中使用了“gcc”命令并成功运行了这些命令。但是今天,每当我运行 gcc 时,.cpp 都会显示类似“错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)”之类的错误。

这适用于所有 cpp 文件,而不是一个。

【问题讨论】:

我希望链接器会提供额外的错误消息,说明它失败的原因。该消息应该是问题的一部分。 使用 g++,而不是 gcc。 使用 -v 标志编译并检查它给出的消息。可能是缺少某些库。 使用 g++ 代替 gcc 工作 作为这里的新用户,也可以使用tour 并阅读How to Ask。您的问题有很多需要改进的地方,第二个链接对此进行了详细说明。 【参考方案1】:

GCC 编译器套件包含用于编译 C 和 C++ 代码的不同命令。如果你用错了,也许你会期望编译器给出这样的错误:

这不是 C 文件。

但正如你发现的那样,情况并非如此。¨

gcc 是 C 代码的编译器,g++ 是 C++ 代码的编译器。如果您尝试使用 gcc 编译 C++,您会收到如下错误:

$ gcc hello.cpp 
/tmp/cc9uZOKP.o: In function `main':
hello.cpp:(.text+0xe): undefined reference to `std::cout'
hello.cpp:(.text+0x13): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
hello.cpp:(.text+0x20): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)'
/tmp/cc9uZOKP.o: In function `__static_initialization_and_destruction_0(int, int)':
hello.cpp:(.text+0x50): undefined reference to `std::ios_base::Init::Init()'
hello.cpp:(.text+0x65): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status

【讨论】:

以上是关于错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook [重复]的主要内容,如果未能解决你的问题,请参考以下文章

clang:错误:链接器命令失败,退出代码为 1,react-native

cocoapods - 链接器命令失败,退出代码为 1

clang++:错误:链接器命令失败,退出代码为 1 Qt Android

Xcode - 链接器命令失败,退出代码为 1

Xcode 9 - 链接器命令失败,退出代码为 1

clang:错误:链接器命令失败,退出代码为 1(Unity 中的 XMPP 库导出了 xcode