0

私は Linux 環境で C++ を初めて使用し、プロジェクトに png++ ライブラリを使用しようとしています。私が直面している問題は、png++ を使用して記述した単純なプログラムが機能せず、次のエラーが表示されることです。

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).

今までやってきた背景。

1 : gcc/g++ が正しく構成されています。

2 : libpng-1.2.50 を正しくインストールしました。結果は正しいようです。

これは、現在の usr/local フォルダーの外観です

:/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:その後、次の手順(http://www.nongnu.org/pngpp/doc/0.2.5/)に従ってpng ++-0.2.5をインストールしましたが、5つの手順すべてでエラーは発生しませんでした。

しかし、その後、単純なプログラムをコンパイルしようとしたとき (同じサイトで与えられた指示: http://www.nongnu.org/pngpp/doc/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$ 

このような長い投稿で申し訳ありません。しかし、私の問題に関連するすべて/すべてを説明したかっただけです. 誰かがここで私を助けてくれることを願っています。

4

1 に答える 1

4

リンカー コマンド ラインで使用する引用符が正しくないようです。単一の逆引用符である必要があります。

$ g++ -o AProg AProg.o `libpng-config --ldflags`
于 2012-09-07T12:00:47.300 に答える