libpng |建筑的重复符号
libpng | duplicate symbol for architecture
我正在尝试在 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 时出现同样的错误。
我做错了什么?
您有两个文件(可能是 main.c 和 qrenc.c)具有主要功能。从这些文件中删除函数并使用 -lpng.
我正在尝试在 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 时出现同样的错误。
我做错了什么?
您有两个文件(可能是 main.c 和 qrenc.c)具有主要功能。从这些文件中删除函数并使用 -lpng.