Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
When installing snes9express, I get an error saying that libpng is missing. Libpng is a fairly common set of files right? I think this may just be a path issue of some sort. Do i just need to add the path to it in the ldconfig.conf file? How do I find out if I have it installed? I did a full install of Slackware 9.1.
It's very common library. To find it in your system run
locate libpng.so
If you think the path may be not in LD_LIBRARY_PATH or ld.so.conf, put it there.
i get the same error after running ldconfig as root. (i cannot run ldconfig as normal user, get an error /sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied)
PNG library not found
libpng >= 1.0.6 is required for skins.
You can either install the libpng development files,
or configure with --disable-skins
I've also reinstalled zlib and libpng successfully too.
Here's the output of ./configure too:
/snes9express-1.39-beta1# ./configure
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether make sets ${MAKE}... (cached) yes
checking for gzopen in -lz... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking for unistd.h... (cached) yes
checking sys/joystick.h usability... no
checking sys/joystick.h presence... no
checking for sys/joystick.h... no
checking linux/joystick.h usability... yes
checking linux/joystick.h presence... yes
checking for linux/joystick.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for gcc option to accept ANSI C... none needed
checking for an ANSI C-conforming const... yes
checking for mode_t... yes
checking for pid_t... yes
checking whether gcc needs -traditional... no
checking for working memcmp... yes
checking for getcwd... yes
checking for mkdir... yes
checking for putenv... yes
checking for rmdir... yes
checking for strerror... yes
checking for strstr... yes
checking for strtol... yes
checking for pkg-config... /usr/bin/pkg-config
checking for gtk+-2.0 >= 2.0.0... yes
checking GTK_CFLAGS... -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
checking GTK_LIBS... -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
checking for png_read_png in -lpng... no
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
PNG library not found
libpng >= 1.0.6 is required for skins.
You can either install the libpng development files,
or configure with --disable-skins
It looks OK. Is it possible to try with another version of the program? To fix the cirrent one I don't have other idea than to dig into the configure script...
Mara (or anyone), could you try the installer for me? See if you get the same results? You wouldn't have to completely install, just run ./configure and see if you can get past the error.
when i try version snes9express-1.26-2.src.tar.gz,
i get this during make:
# make
g++ -Wall -g -O2 -c `sh frend-config --cflags` frend.cc -o frend.o
In file included from frend.cc:26:
frend.h:102: friend declaration requires class-key, i.e. `friend struct
fr_Style'
frend.h:103: friend declaration requires class-key, i.e. `friend struct
fr_Element'
frend.h:104: friend declaration requires class-key, i.e. `friend struct
fr_Button'
frend.h:105: friend declaration requires class-key, i.e. `friend struct
fr_DataTable'
frend.h:106: friend declaration requires class-key, i.e. `friend struct
fr_Window'
frend.h:117: friend declaration requires class-key, i.e. `friend class fr_Image
'
frend.h:118: friend declaration requires class-key, i.e. `friend struct
fr_Element'
frend.h:119: friend declaration requires class-key, i.e. `friend struct
fr_Window'
frend.h:120: friend declaration requires class-key, i.e. `friend struct
fr_PulldownMenu'
frend.h:128: friend declaration requires class-key, i.e. `friend class fr_Image
'
frend.h:129: friend declaration requires class-key, i.e. `friend class fr_Style
'
frend.h:130: friend declaration requires class-key, i.e. `friend struct fr_Box'
frend.h:131: friend declaration requires class-key, i.e. `friend struct fr_File
'
frend.h:132: friend declaration requires class-key, i.e. `friend struct
fr_Window'
frend.h:133: friend declaration requires class-key, i.e. `friend struct
fr_Event'
frend.h:138: syntax error before `*' token
frend.h:184: friend declaration requires class-key, i.e. `friend class
fr_Element'
frend.h:185: friend declaration requires class-key, i.e. `friend struct
fr_Button'
frend.h:186: friend declaration requires class-key, i.e. `friend struct
fr_Notebook'
frend.h:216: friend declaration requires class-key, i.e. `friend class
fr_Element'
frend.h:217: friend declaration requires class-key, i.e. `friend struct
fr_Notebook'
frend.h:291: friend declaration requires class-key, i.e. `friend struct
fr_GroupHolder'
frend.h:292: friend declaration requires class-key, i.e. `friend struct
fr_RadioGroup'
frend.h:293: friend declaration requires class-key, i.e. `friend struct
fr_PulldownMenu'
frend.h:320: friend declaration requires class-key, i.e. `friend struct
fr_RadioGroup'
frend.h:326: friend declaration requires class-key, i.e. `friend class
fr_RadioButton'
frend.h:335: friend declaration requires class-key, i.e. `friend struct
fr_PulldownMenu'
frend.h:343: friend declaration requires class-key, i.e. `friend class
fr_MenuItem'
frend.h:413: 'set' is used as a type, but is not defined as a type.
frend.cc: In constructor `fr_Element::fr_Element()':
frend.cc:337: `Listeners' undeclared (first use this function)
frend.cc:337: (Each undeclared identifier is reported only once for each
function it appears in.)
frend.cc: In constructor `fr_Event::fr_Event(fr_Element*, int, int, void*)':
frend.cc:500: `class fr_Element' has no member named `Listeners'
frend.cc:502: `class fr_Element' has no member named `Listeners'
frend.cc:502: `class fr_Element' has no member named `Listeners'
frend.cc: At global scope:
frend.cc:784: default argument given for parameter 2 of `void
fr_ButtonBox::AddButton(fr_Button&, bool = false)'
frend.h:244: after previous specification in `virtual void
fr_ButtonBox::AddButton(fr_Button&, bool = false)'
frend.cc: In member function `fr_Image* fr_DataTable::GetCellPic(int, int)':
frend.cc:1463: `ImageCollection' undeclared (first use this function)
make: *** [frend.o] Error 1
Hi, I'm the author of snes9express... so hopefully I can be of some help.
First of all, don't worry about putting /usr/lib into ld.so.conf. /usr/lib is searched for libraries anyway, and if somehow it wasn't, you'd have a lot bigger problems than snes9express not compiling.
Here's the culprit in your configure output:
Code:
checking for png_read_png in -lpng... no
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
png_read_png is a function of the libpng API(since 1.0.6). As perhaps is evident by its name, it comes in very handy for reading png images(needed for skins). It appears that configure does not think that function is available in your libpng, and concludes(incorrectly, it seems) that your version is less than 1.0.6. It is possible for libpng to be compiled with png_read_png excluded, but to my knowledge that's a rather rare situation.
The only thing I can think of in trying to diagnose the problem is trying a simple test compilation.
create a file called pngtest.c and put this in it:
Code:
#include <png.h>
int main()
{
png_read_png(0,0,0,0);
return 0;
}
then run this command:
Code:
gcc -c /path/to/pngtest.c -o /dev/null
If that doesn't give any errors, then the configure script (which is generated by autoconf) is somehow mistaken(in which case we'll try to short-circuit it). On the other hand, if that gives any error messages, they should* be helpful to us in determining how to fix the problem.
* but we all know error messages can sometimes be a little vague.
Dave
PS: prior to 1.39, snes9express had its own custom build system, whereas 1.39 uses autoconf. Also, versions older than 1.39 only work with gtk 1.x, and might not want to compile with newer(more strict) versions of gcc.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.