2015-08-15 45 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

相關問題