【问题标题】:libpng | duplicate symbol for architecturelibpng |建筑的重复符号
【发布时间】:2015-11-08 16:37:14
【问题描述】:

我正在尝试在 Mac OS X Yosemite 上使用 libpng 编译一个项目。

我得到了错误:

Undefined symbols for architecture x86_64:
  "_png_create_info_struct", referenced from:
      _writePNG in qrenc.o
  "_png_create_write_struct", referenced from:
      _writePNG in qrenc.o
  "_png_destroy_write_struct", referenced from:
      _writePNG in qrenc.o
  "_png_init_io", referenced from:
      _writePNG in qrenc.o
  "_png_set_IHDR", referenced from:
      _writePNG in qrenc.o
  "_png_set_PLTE", referenced from:
      _writePNG in qrenc.o
  "_png_set_longjmp_fn", referenced from:
      _writePNG in qrenc.o
  "_png_set_pHYs", referenced from:
      _writePNG in qrenc.o
  "_png_set_tRNS", referenced from:
      _writePNG in qrenc.o
  "_png_write_end", referenced from:
      _writePNG in qrenc.o
  "_png_write_info", referenced from:
      _writePNG in qrenc.o
  "_png_write_row", referenced from:
      _writePNG in qrenc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

所以我在我的 ld 调用中添加了 -lpng。 现在它抛出

duplicate symbol _main in:
    .obj/main.o
    .obj/qrenc.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

链接自制软件安装的 libpng 时出现同样的错误。

我做错了什么?

【问题讨论】:

  • 这是整个错误吗?
  • 不。我添加了完整的错误输出!

标签: c++ macos qt libpng


【解决方案1】:

您有两个带有 main 函数的文件(可能是 main.c 和 qrenc.c)。从这些文件中删除该函数并使用 -lpng。

【讨论】:

  • ... 或 main() 在标头中定义。
  • 我使用了一个库的一部分,它仍然在它自己的主函数中实现了 cli :)
猜你喜欢
  • 2015-04-29
  • 2015-04-22
  • 2013-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-16
  • 1970-01-01
  • 2016-02-11
相关资源
最近更新 更多