【问题标题】: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能否提供源代码进行检查?

标签: c++ compilation fltk


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多