每当我尝试链接库时,都会出现错误

Posted

技术标签:

【中文标题】每当我尝试链接库时,都会出现错误【英文标题】:Whenever I try to link a library I get an error 【发布时间】:2014-01-11 20:37:24 【问题描述】:

我正在尝试为 C++ 学习 FLTK,并且我正在使用带有 clang++ 编译器的 Macbook。每当我尝试像这样链接库时:

clang++ -L/usr/local/lib -lfltk

它给了我这个错误:

 clang: warning: argument unused during compilation: '-X11'
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)

我查看了其他几个论坛以了解如何解决此问题,但没有得到任何有效的答案。我还尝试从 Apple 的开发者网站重新安装命令行工具。

【问题讨论】:

您不会像那样链接库本身(这没有意义)。你把它们链接到一个程序。你知道的,有main()的东西。 @H2CO3 哦。谢谢。但是如何将它们链接到特定程序?我被“cd”到了我的项目所在的目录中。 检查命令输出:file 。似乎是为 x86 平台而不是 x86_64 编译的 fltk 库。 我认为它没有 dylib 文件。只是一个.a。我已经使用 lipo -info 而不是 file 检查了 .a 文件,它显示“非胖文件:/usr/local/lib/libfltk.a is architecture: x86_64” @blockaj 我尝试从 fltk 包编译 tabs-simple.cxx 文件 - 一切正常。编译命令为g++ tabs-simple.cxx -I/usr/local/include/ -L/usr/local/lib -lfltk,安装fltk调用sudo port install fltk-devel能否提供源代码进行检查? 【参考方案1】:

您必须确保在执行 filename.cpp -o Exectuable 之前放置了链接器命令 (-L/usr/local/lib -lfltk),但仍位于命令行的同一行中。

【讨论】:

以上是关于每当我尝试链接库时,都会出现错误的主要内容,如果未能解决你的问题,请参考以下文章

qt creator qt5.1 vs2010 使用静态库时链接器错误

链接静态库时将无法识别的选择器发送到实例?

为啥我应该没有错时却出现链接错误

XCode 链接静态库 (GLEW) 尝试 dylib 加载

当我链接动态库而不是静态库时,CMake 有效

由于不同版本的 MSVC 和 Qt 库导致链接错误