2015-08-15 123 views
1

我想在Mac OS X Yosemite上使用libpng编译项目。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) 

,所以我说-lpng我LD电话。 现在,它通过对安装自制软件的libpng链接时抛出

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) 

同样的错误。

我在做什么错?

+0

是整个错误吗? –

+0

不是。我添加了完整的错误输出! – iMoritz

回答

3

你有两个文件(可能main.c和qrenc.c)与主要功能。从任何这些文件中删除函数并使用-lpng。

+1

...或者在主页中定义了'main()'。 –

+0

我使用了一个库中的一部分,它仍然有cli在它自己的主要功能中实现:) – iMoritz

相关问题