【问题标题】:ld: symbol(s) not found for architecture x86_64 clang: error:ld:未找到架构 x86_64 的符号 clang:错误:
【发布时间】:2019-02-21 14:29:03
【问题描述】:

这适用于使用 Eclipse 的 Mac

#include <iostream>
using namespace std;

int main() {
 cout << "!!!Hello, world!!!" << endl;
 return 0;
}

这是编译器的输出:

Invoking: MacOS X C++ Linker g++ -o "Lab2" ./secondlab.o
Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Lab2] Error 1

【问题讨论】:

  • clangclang++?无论如何,欢迎来到Stack Overflow。请访问How to Ask 帮助页面。您的问题要求的详细信息非常低。
  • 编译器命令行看起来如何?
  • 这是完整的错误:Invoking: MacOS X C++ Linker g++ -o "Lab2" ./secondlab.o Undefined symbols for architecture x86_64: "_main",引用自:implicit entry/start for main可执行文件 ld:未找到体系结构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)make:*** [Lab2] 错误 1
  • 我不确定为什么会出现此错误,我是编码新手,无法弄清楚,我在使用相同的 IDE 和编译器完成上一个实验室时没有遇到此问题

标签: c++ eclipse macos


【解决方案1】:

您需要做的就是在 CDT/eclipse 下正确配置 C++ 链接器,必须在以下文本字段中输入“sndfile”:

项目->属性->C/C++ 构建->设置->Mac OS C++ 链接器->库->“库-l”

“-l”会自动添加到“sndfile”以创建“-lsndfile”

然而,将编译器指向正确的包含目录(包含“sndfile.h”)也很重要。我想大多数安装都会将它安装到“/usr/local/include”中。 对于 CDT/eclipse 中的 C++ 项目,这需要输入

项目->属性->C/C++ 构建->设置->GCC C++ 编译器->包含->“包含路径(-l)”

请查看this 线程。

【讨论】:

  • 请不要只发布链接作为答案,链接过期然后您的答案变得毫无意义,请在您的答案中发布链接的重要部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 2020-06-20
  • 1970-01-01
相关资源
最近更新 更多