png中未定义的引用++; 我是Linux环境下的C++新手,我正在尝试使用PNG++库进行项目。我面临的问题是,我使用png++编写的一个简单程序includes不起作用,并向我显示以下错误 AProg.o: In function `png::info_base::info_base(png::io_base&, png_struct_def*)': AProg.cpp:(.text._ZN3png9info_baseC2ERNS_7io_baseEP14png_struct_def[_ZN3png9info_baseC5ERNS_7io_baseEP14png_struct_def]+0x21): undefined reference to `png_create_info_struct' AProg.o: In function `png::info::write() const': AProg.cpp:(.text._ZNK3png4info5writeEv[png::info::write() const]+0xd4): undefined reference to `png_set_PLTE' AProg.cpp:(.text._ZNK3png4info5writeEv[png::info::write() const]+0x137): undefined reference to `png_set_tRNS' AProg.cpp:(.text._ZNK3png4info5writeEv[png::info::write() const]+0x14f): undefined reference to `png_write_info' AProg.o: In function `png::info::sync_ihdr() const': AProg.cpp:(.text._ZNK3png4info9sync_ihdrEv[png::info::sync_ihdr() const]+0x79): undefined reference to `png_set_IHDR' AProg.o: In function `png::end_info::destroy()': AProg.cpp:(.text._ZN3png8end_info7destroyEv[png::end_info::destroy()]+0x48): undefined reference to `png_destroy_info_struct' AProg.o: In function `png::end_info::write() const': AProg.cpp:(.text._ZNK3png8end_info5writeEv[png::end_info::write() const]+0x1a): undefined reference to `png_write_end' AProg.o: In function `png::io_base::set_swap() const': AProg.cpp:(.text._ZNK3png7io_base8set_swapEv[png::io_base::set_swap() const]+0x1b): undefined reference to `png_set_swap' .............. (and it goes on).

png中未定义的引用++; 我是Linux环境下的C++新手,我正在尝试使用PNG++库进行项目。我面临的问题是,我使用png++编写的一个简单程序includes不起作用,并向我显示以下错误 AProg.o: In function `png::info_base::info_base(png::io_base&, png_struct_def*)': AProg.cpp:(.text._ZN3png9info_baseC2ERNS_7io_baseEP14png_struct_def[_ZN3png9info_baseC5ERNS_7io_baseEP14png_struct_def]+0x21): undefined reference to `png_create_info_struct' AProg.o: In function `png::info::write() const': AProg.cpp:(.text._ZNK3png4info5writeEv[png::info::write() const]+0xd4): undefined reference to `png_set_PLTE' AProg.cpp:(.text._ZNK3png4info5writeEv[png::info::write() const]+0x137): undefined reference to `png_set_tRNS' AProg.cpp:(.text._ZNK3png4info5writeEv[png::info::write() const]+0x14f): undefined reference to `png_write_info' AProg.o: In function `png::info::sync_ihdr() const': AProg.cpp:(.text._ZNK3png4info9sync_ihdrEv[png::info::sync_ihdr() const]+0x79): undefined reference to `png_set_IHDR' AProg.o: In function `png::end_info::destroy()': AProg.cpp:(.text._ZN3png8end_info7destroyEv[png::end_info::destroy()]+0x48): undefined reference to `png_destroy_info_struct' AProg.o: In function `png::end_info::write() const': AProg.cpp:(.text._ZNK3png8end_info5writeEv[png::end_info::write() const]+0x1a): undefined reference to `png_write_end' AProg.o: In function `png::io_base::set_swap() const': AProg.cpp:(.text._ZNK3png7io_base8set_swapEv[png::io_base::set_swap() const]+0x1b): undefined reference to `png_set_swap' .............. (and it goes on).,c++,linux,libpng,C++,Linux,Libpng,我到目前为止所做工作的背景 1:我已经正确配置了gcc/g++ 2:我已经正确安装了libpng-1.2.50。结果似乎是正确的 这就是我的usr/本地文件夹现在的外观 :/usr/local/include$ ls libpng12 libpng15 png++ pngconf.h png.h pnglibconf.h :/usr/local/lib$ ls libpng12.a libpng12.so libpng12.so.0.50.0 libpng15.la

我到目前为止所做工作的背景

1:我已经正确配置了gcc/g++

2:我已经正确安装了libpng-1.2.50。结果似乎是正确的

这就是我的usr/本地文件夹现在的外观

:/usr/local/include$ ls

libpng12  libpng15  png++  pngconf.h  png.h  pnglibconf.h

:/usr/local/lib$ ls

libpng12.a   libpng12.so    libpng12.so.0.50.0  libpng15.la  libpng15.so.15     libpng.a   libpng.so    libpng.so.3.50.0  python2.7
libpng12.la  libpng12.so.0  libpng15.a          libpng15.so  libpng15.so.15.12.0  libpng.la  libpng.so.3  pkgconfig

:/usr/local/bin$ ls

eclipse  libpng-1.2.50  libpng12-config  libpng-1.5.12  libpng15-config  libpng-config  png++-0.2.5
3:之后我按照下面的()安装了png++-0.2.5,所有的五个步骤都没有给出任何错误

但在那之后,当我试图编译一个简单的程序(在同一个站点上给出了指令:)时,它无法编译

:~/workspace/AProg$ g++ -o AProg AProg.o 'libpng-config --ldflags'

g++: error: libpng-config --ldflags: No such file or directory
然后我试图解决这个问题,用谷歌搜索它,并给出了这个命令,这个命令在编译时似乎工作得很好,但当我试图运行它时。我得到了文章顶部提到的错误

 :~/workspace/AProg$ g++ -c AProg.cpp -I/usr/local/include/libpng12 -L/usr/local/lib -lpng -I/usr/local/include/png++

 :~/workspace/AProg$ 

很抱歉发了这么长的邮件。但我只是想解释与我的问题有关的一切。希望有人能帮助我。

您在链接器命令行中使用的引号似乎不正确,应该是单引号:


您在链接器命令行中使用的引号似乎不正确,应该是单引号:


看起来您的链接步骤(g++-o)失败了,因此您的应用程序没有正确链接到LibPNG。最后一次尝试使用-o g++调用吗?看起来您的链接步骤(g++-o)失败了-因此您的应用程序没有正确链接到LibPNG。还可以尝试最后一次使用-og++调用吗?
$ g++ -o AProg AProg.o `libpng-config --ldflags`