undefined reference

This is a discussion on undefined reference within the Linux Programming forums, part of the Platform Specific Boards category; I'm having problems linking my app. Here are the build messages Code: Building the whole Project: iop ... make make ...

  1. #1
    Registered User
    Join Date
    Jan 2006
    Posts
    62

    undefined reference

    I'm having problems linking my app. Here are the build messages

    Code:
    Building the whole Project: iop ...
    make 
    make  all-recursive
    make[1]: Entering directory `/home/lx1/Projects/iop'
    Making all in src
    make[2]: Entering directory `/home/lx1/Projects/iop/src'
    gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include     -Wall 	 -g -g -O2 -c support.c
    /bin/sh ../libtool --mode=link gcc -Wall 	 -g -g -O2  -o iop  support.o main.o -lgtk-x11-2.0 -latk-1.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lX11   
    mkdir .libs
    gcc -Wall -g -g -O2 -o iop support.o main.o  /usr/lib/libgtk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm /usr/lib/libpangocairo-1.0.so -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes /usr/lib/libpango-1.0.so /usr/lib/libcairo.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libglib-2.0.so -lX11
    main.o: In function `Func_M_Details':/home/lx1/Projects/iop/src/main.c:1201: undefined reference to `gconf_client_get_default'
    :/home/lx1/Projects/iop/src/main.c:1205: undefined reference to `gconf_client_get_bool'
    collect2: ld returned 1 exit status
    make[2]: *** [iop] Error 1
    make[2]: Leaving directory `/home/lx1/Projects/iop/src'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/lx1/Projects/iop'
    make: *** [all-recursive-am] Error 2
    Completed ... unsuccessful
    I don't really understand what the problem is because all of the required libraries are installed/available and my app can see the .h files no problem

  2. #2
    Registered User
    Join Date
    Jan 2006
    Posts
    62
    ldconfig show's that they're installed correctly..

    ldconfig -p | grep gconf
    libgconf-2.so.4 (libc6) => /usr/lib/libgconf-2.so.4
    libgconf-2.so (libc6) => /usr/lib/libgconf-2.so
    libgconf-1.so.1 (libc6) => /usr/lib/libgconf-1.so.1
    libgconf-gtk-1.so.1 (libc6) => /usr/lib/libgconf-gtk-1.so.1

  3. #3
    Registered User
    Join Date
    Jan 2006
    Posts
    62
    Surely there's something someone can suggest that I try....look for! I'm using Ubuntu 6.06.

    Thanks

  4. #4
    xhi
    xhi is offline
    !anExpert
    Join Date
    Mar 2005
    Location
    pa
    Posts
    155
    ldconfig ouput is no concern to you for this compile time error. that last call to gcc looks suspicious to me. looks like it might be screwed up in the makefile, missing some libs and adding some junk..

    you said this is *your* app, did you write it?

  5. #5
    Registered User
    Join Date
    Jan 2006
    Posts
    62
    Quote Originally Posted by xhi
    you said this is *your* app, did you write it?
    Yes it is my app. Everything was working until I added gconf to my code. It seems to be some kind of misconfiguration in Ubuntu (6.06) because I get the same thing on my other pc with the exact same install of Ubuntu. I'm using Anjuta 1.24a.

    Does it look like a problem with the way I've included the gconf headers or a shared library/makefile issue?

  6. #6
    xhi
    xhi is offline
    !anExpert
    Join Date
    Mar 2005
    Location
    pa
    Posts
    155
    yes it looks like there is a problem with the second call to gcc there..

    see how the first one links by specifying libs like
    -lglib-2.0

    and the second one says..
    /usr/lib/libglib-2.0.so

    afaik that is not going to work like that. though i could be wrong.

    can you post the relevant parts of the makefile

  7. #7
    Gawking at stupidity
    Join Date
    Jul 2004
    Location
    Oregon, USA
    Posts
    3,163
    It's not a header file problem because the compiler isn't complaining about undeclared function use. It's not until the linking stage that it barfs which makes me think that you're possibly using the wrong version of one of your libraries or not including a library that you need.
    If you understand what you're doing, you're not learning anything.

  8. #8
    Registered User
    Join Date
    Jan 2006
    Posts
    62
    Let me know if you need more. BTW..I've 'cleaned' the makefile many times and recreated it but obviously when it recreates it it still has the same problems...let me know if you need more from the makefile...and thanks!

    ACLOCAL = aclocal-1.4
    AUTOCONF = autoconf
    AUTOMAKE = automake-1.4
    AUTOHEADER = autoheader

    MAKEINFO = /home/lx1/Projects/ios/missing makeinfo
    MKINSTALLDIRS = @MKINSTALLDIRS@
    NO_PREFIX_PACKAGE_DATA_DIR = share
    NO_PREFIX_PACKAGE_DOC_DIR = doc/ios
    NO_PREFIX_PACKAGE_HELP_DIR = share/help
    NO_PREFIX_PACKAGE_MENU_DIR = share
    NO_PREFIX_PACKAGE_PIXMAPS_DIR = share/pixmaps
    OBJDUMP = @OBJDUMP@
    OBJEXT = o
    PACKAGE = ios
    PACKAGE_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
    PACKAGE_DATA_DIR = /usr/local/share
    PACKAGE_DOC_DIR = /usr/local/doc/ios
    PACKAGE_HELP_DIR = /usr/local/share/help
    PACKAGE_LIBS = -lgtk-x11-2.0 -latk-1.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lX11
    PACKAGE_MENU_DIR = /usr/local/share
    PACKAGE_PIXMAPS_DIR = /usr/local/share/pixmaps
    PKG_CONFIG = /usr/bin/pkg-config

  9. #9
    xhi
    xhi is offline
    !anExpert
    Join Date
    Mar 2005
    Location
    pa
    Posts
    155
    yeh it looks like you package_libs var is being set with valid libs.

    this is the line i am talking about being a problem
    Code:
    gcc -Wall -g -g -O2 -o iop support.o main.o  /usr/lib/libgtk-x11-2.0.so
     /usr/lib/libatk-1.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libgdk_pixbuf-2.0.so 
    -lm /usr/lib/libpangocairo-1.0.so -lfontconfig -lXext -lXrender -lXinerama -lXi 
    -lXrandr -lXcursor -lXfixes /usr/lib/libpango-1.0.so /usr/lib/libcairo.so /usr/lib/libgobject-2.0.so
     /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libglib-2.0.so -lX11
    can you post the part of the makefile that is generating that line.

    it very well could be a compilation technique that i am not familiar with, but that just does not look right the way it is adding the libs

  10. #10
    Registered User
    Join Date
    Jan 2006
    Posts
    62
    I'm not entirely sure which part of the Makefile will have the info you need...so I'll post the whole thing. Also the makefile is being generated with version 1.4 - which is an old version..but has worked for me in the past.

    Code:
    # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
    
    # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
    # This Makefile.in is free software; the Free Software Foundation
    # gives unlimited permission to copy and/or distribute it,
    # with or without modifications, as long as this notice is preserved.
    
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
    # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
    # PARTICULAR PURPOSE.
    
    
    SHELL = /bin/sh
    
    srcdir = .
    top_srcdir = .
    
    prefix = /usr/local
    exec_prefix = ${prefix}
    
    bindir = ${exec_prefix}/bin
    sbindir = ${exec_prefix}/sbin
    libexecdir = ${exec_prefix}/libexec
    datadir = ${prefix}/share
    sysconfdir = ${prefix}/etc
    sharedstatedir = ${prefix}/com
    localstatedir = ${prefix}/var
    libdir = ${exec_prefix}/lib
    infodir = ${prefix}/info
    mandir = ${prefix}/man
    includedir = ${prefix}/include
    oldincludedir = /usr/include
    
    DESTDIR =
    
    pkgdatadir = $(datadir)/ios
    pkglibdir = $(libdir)/ios
    pkgincludedir = $(includedir)/ios
    
    top_builddir = .
    
    ACLOCAL = aclocal-1.4
    AUTOCONF = autoconf
    AUTOMAKE = automake-1.4
    AUTOHEADER = autoheader
    
    INSTALL = /usr/bin/install -c
    INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
    INSTALL_DATA = ${INSTALL} -m 644
    INSTALL_SCRIPT = ${INSTALL}
    transform = s,x,x,
    
    NORMAL_INSTALL = :
    PRE_INSTALL = :
    POST_INSTALL = :
    NORMAL_UNINSTALL = :
    PRE_UNINSTALL = :
    POST_UNINSTALL = :
    host_alias = 
    host_triplet = i686-pc-linux-gnu
    AR = ar
    AS = @AS@
    BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
    CATOBJEXT = @CATOBJEXT@
    CC = gcc
    CXX = g++
    CXXCPP = g++ -E
    DATADIRNAME = @DATADIRNAME@
    DLLTOOL = @DLLTOOL@
    ECHO = echo
    EGREP = grep -E
    EXEEXT = 
    F77 = 
    GCJ = @GCJ@
    GCJFLAGS = @GCJFLAGS@
    GENCAT = @GENCAT@
    GLIBC2 = @GLIBC2@
    GLIBC21 = @GLIBC21@
    GMSGFMT = @GMSGFMT@
    HAVE_ASPRINTF = @HAVE_ASPRINTF@
    HAVE_LIB = @HAVE_LIB@
    HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
    HAVE_SNPRINTF = @HAVE_SNPRINTF@
    HAVE_WPRINTF = @HAVE_WPRINTF@
    INSTOBJEXT = @INSTOBJEXT@
    INTLBISON = @INTLBISON@
    INTLLIBS = @INTLLIBS@
    INTLOBJS = @INTLOBJS@
    INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
    INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
    LIB = @LIB@
    LIBICONV = @LIBICONV@
    LIBINTL = @LIBINTL@
    LIBTOOL = $(SHELL) $(top_builddir)/libtool
    LN_S = ln -s
    LTLIB = @LTLIB@
    LTLIBICONV = @LTLIBICONV@
    LTLIBINTL = @LTLIBINTL@
    MAINT = 
    MAKEINFO = /home/lx1/Projects/ios/missing makeinfo
    MKINSTALLDIRS = @MKINSTALLDIRS@
    NO_PREFIX_PACKAGE_DATA_DIR = share
    NO_PREFIX_PACKAGE_DOC_DIR = doc/ios
    NO_PREFIX_PACKAGE_HELP_DIR = share/help
    NO_PREFIX_PACKAGE_MENU_DIR = share
    NO_PREFIX_PACKAGE_PIXMAPS_DIR = share/pixmaps
    OBJDUMP = @OBJDUMP@
    OBJEXT = o
    PACKAGE = ios
    PACKAGE_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
    PACKAGE_DATA_DIR = /usr/local/share
    PACKAGE_DOC_DIR = /usr/local/doc/ios
    PACKAGE_HELP_DIR = /usr/local/share/help
    PACKAGE_LIBS = -lgtk-x11-2.0 -latk-1.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lX11  
    PACKAGE_MENU_DIR = /usr/local/share
    PACKAGE_PIXMAPS_DIR = /usr/local/share/pixmaps
    PKG_CONFIG = /usr/bin/pkg-config
    POSUB = @POSUB@
    RANLIB = ranlib
    RC = @RC@
    STRIP = strip
    USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
    USE_NLS = @USE_NLS@
    VERSION = 0.2
    
    SUBDIRS = src
    
    iosdocdir = ${prefix}/doc/ios
    iosdoc_DATA =  	README 	COPYING 	AUTHORS 	ChangeLog 	INSTALL 	NEWS 	TODO
    
    
    EXTRA_DIST = $(iosdoc_DATA)
    ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
    mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
    CONFIG_HEADER = config.h
    CONFIG_CLEAN_FILES = 
    DATA =  $(iosdoc_DATA)
    
    DIST_COMMON =  README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \
    Makefile.am Makefile.in NEWS TODO acconfig.h acinclude.m4 aclocal.m4 \
    config.guess config.h.in config.sub configure configure.in install-sh \
    ltmain.sh missing mkinstalldirs
    
    
    DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
    
    TAR = tar
    GZIP_ENV = --best
    all: all-redirect
    .SUFFIXES:
    $(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
    	cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
    
    Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
    	cd $(top_builddir) \
    	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
    
    $(ACLOCAL_M4):  configure.in  acinclude.m4
    	cd $(srcdir) && $(ACLOCAL)
    
    config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
    	$(SHELL) ./config.status --recheck
    $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
    	cd $(srcdir) && $(AUTOCONF)
    
    config.h: stamp-h
    	@if test ! -f $@; then \
    		rm -f stamp-h; \
    		$(MAKE) stamp-h; \
    	else :; fi
    stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
    	cd $(top_builddir) \
    	  && CONFIG_FILES= CONFIG_HEADERS=config.h \
    	     $(SHELL) ./config.status
    	@echo timestamp > stamp-h 2> /dev/null
    $(srcdir)/config.h.in: $(srcdir)/stamp-h.in
    	@if test ! -f $@; then \
    		rm -f $(srcdir)/stamp-h.in; \
    		$(MAKE) $(srcdir)/stamp-h.in; \
    	else :; fi
    $(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
    	cd $(top_srcdir) && $(AUTOHEADER)
    	@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
    
    mostlyclean-hdr:
    
    clean-hdr:
    
    distclean-hdr:
    	-rm -f config.h
    
    maintainer-clean-hdr:
    
    install-iosdocDATA: $(iosdoc_DATA)
    	@$(NORMAL_INSTALL)
    	$(mkinstalldirs) $(DESTDIR)$(iosdocdir)
    	@list='$(iosdoc_DATA)'; for p in $$list; do \
    	  if test -f $(srcdir)/$$p; then \
    	    echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(iosdocdir)/$$p"; \
    	    $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(iosdocdir)/$$p; \
    	  else if test -f $$p; then \
    	    echo " $(INSTALL_DATA) $$p $(DESTDIR)$(iosdocdir)/$$p"; \
    	    $(INSTALL_DATA) $$p $(DESTDIR)$(iosdocdir)/$$p; \
    	  fi; fi; \
    	done
    
    uninstall-iosdocDATA:
    	@$(NORMAL_UNINSTALL)
    	list='$(iosdoc_DATA)'; for p in $$list; do \
    	  rm -f $(DESTDIR)$(iosdocdir)/$$p; \
    	done
    
    # This directory's subdirectories are mostly independent; you can cd
    # into them and run `make' without going through this Makefile.
    # To change the values of `make' variables: instead of editing Makefiles,
    # (1) if the variable is set in `config.status', edit `config.status'
    #     (which will cause the Makefiles to be regenerated when you run `make');
    # (2) otherwise, pass the desired values on the `make' command line.
    
    
    
    all-recursive install-data-recursive install-exec-recursive \
    installdirs-recursive install-recursive uninstall-recursive  \
    check-recursive installcheck-recursive info-recursive dvi-recursive:
    	@set fnord $(MAKEFLAGS); amf=$$2; \
    	dot_seen=no; \
    	target=`echo $@ | sed s/-recursive//`; \
    	list='$(SUBDIRS)'; for subdir in $$list; do \
    	  echo "Making $$target in $$subdir"; \
    	  if test "$$subdir" = "."; then \
    	    dot_seen=yes; \
    	    local_target="$$target-am"; \
    	  else \
    	    local_target="$$target"; \
    	  fi; \
    	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
    	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
    	done; \
    	if test "$$dot_seen" = "no"; then \
    	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
    	fi; test -z "$$fail"
    
    mostlyclean-recursive clean-recursive distclean-recursive \
    maintainer-clean-recursive:
    	@set fnord $(MAKEFLAGS); amf=$$2; \
    	dot_seen=no; \
    	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
    	  rev="$$subdir $$rev"; \
    	  test "$$subdir" != "." || dot_seen=yes; \
    	done; \
    	test "$$dot_seen" = "no" && rev=". $$rev"; \
    	target=`echo $@ | sed s/-recursive//`; \
    	for subdir in $$rev; do \
    	  echo "Making $$target in $$subdir"; \
    	  if test "$$subdir" = "."; then \
    	    local_target="$$target-am"; \
    	  else \
    	    local_target="$$target"; \
    	  fi; \
    	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
    	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
    	done && test -z "$$fail"
    tags-recursive:
    	list='$(SUBDIRS)'; for subdir in $$list; do \
    	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
    	done
    
    tags: TAGS
    
    ID: $(HEADERS) $(SOURCES) $(LISP)
    	list='$(SOURCES) $(HEADERS)'; \
    	unique=`for i in $$list; do echo $$i; done | \
    	  awk '    { files[$$0] = 1; } \
    	       END { for (i in files) print i; }'`; \
    	here=`pwd` && cd $(srcdir) \
    	  && mkid -f$$here/ID $$unique $(LISP)
    
    TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
    	tags=; \
    	here=`pwd`; \
    	list='$(SUBDIRS)'; for subdir in $$list; do \
       if test "$$subdir" = .; then :; else \
    	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
       fi; \
    	done; \
    	list='$(SOURCES) $(HEADERS)'; \
    	unique=`for i in $$list; do echo $$i; done | \
    	  awk '    { files[$$0] = 1; } \
    	       END { for (i in files) print i; }'`; \
    	test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
    	  || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP))
    
    mostlyclean-tags:
    
    clean-tags:
    
    distclean-tags:
    	-rm -f TAGS ID
    
    maintainer-clean-tags:
    
    distdir = $(PACKAGE)-$(VERSION)
    top_distdir = $(distdir)
    
    # This target untars the dist file and tries a VPATH configuration.  Then
    # it guarantees that the distribution is self-contained by making another
    # tarfile.
    distcheck: dist
    	-rm -rf $(distdir)
    	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
    	mkdir $(distdir)/=build
    	mkdir $(distdir)/=inst
    	dc_install_base=`cd $(distdir)/=inst && pwd`; \
    	cd $(distdir)/=build \
    	  && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
    	  && $(MAKE) $(AM_MAKEFLAGS) \
    	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
    	  && $(MAKE) $(AM_MAKEFLAGS) check \
    	  && $(MAKE) $(AM_MAKEFLAGS) install \
    	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
    	  && $(MAKE) $(AM_MAKEFLAGS) dist
    	-rm -rf $(distdir)
    	@banner="$(distdir).tar.gz is ready for distribution"; \
    	dashes=`echo "$$banner" | sed s/./=/g`; \
    	echo "$$dashes"; \
    	echo "$$banner"; \
    	echo "$$dashes"
    dist: distdir
    	-chmod -R a+r $(distdir)
    	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
    	-rm -rf $(distdir)
    dist-all: distdir
    	-chmod -R a+r $(distdir)
    	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
    	-rm -rf $(distdir)
    distdir: $(DISTFILES)
    	-rm -rf $(distdir)
    	mkdir $(distdir)
    	-chmod 777 $(distdir)
    	here=`cd $(top_builddir) && pwd`; \
    	top_distdir=`cd $(distdir) && pwd`; \
    	distdir=`cd $(distdir) && pwd`; \
    	cd $(top_srcdir) \
    	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
    	@for file in $(DISTFILES); do \
    	  d=$(srcdir); \
    	  if test -d $$d/$$file; then \
    	    cp -pr $$d/$$file $(distdir)/$$file; \
    	  else \
    	    test -f $(distdir)/$$file \
    	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
    	    || cp -p $$d/$$file $(distdir)/$$file || :; \
    	  fi; \
    	done
    	for subdir in $(SUBDIRS); do \
    	  if test "$$subdir" = .; then :; else \
    	    test -d $(distdir)/$$subdir \
    	    || mkdir $(distdir)/$$subdir \
    	    || exit 1; \
    	    chmod 777 $(distdir)/$$subdir; \
    	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
    	      || exit 1; \
    	  fi; \
    	done
    	$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
    info-am:
    info: info-recursive
    dvi-am:
    dvi: dvi-recursive
    check-am: all-am
    check: check-recursive
    installcheck-am:
    installcheck: installcheck-recursive
    all-recursive-am: config.h
    	$(MAKE) $(AM_MAKEFLAGS) all-recursive
    
    install-exec-am:
    install-exec: install-exec-recursive
    
    install-data-am: install-iosdocDATA
    install-data: install-data-recursive
    
    install-am: all-am
    	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
    install: install-recursive
    uninstall-am: uninstall-iosdocDATA
    uninstall: uninstall-recursive
    all-am: Makefile $(DATA) config.h
    all-redirect: all-recursive-am
    install-strip:
    	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
    installdirs: installdirs-recursive
    installdirs-am:
    	$(mkinstalldirs)  $(DESTDIR)$(iosdocdir)
    
    
    mostlyclean-generic:
    
    clean-generic:
    
    distclean-generic:
    	-rm -f Makefile $(CONFIG_CLEAN_FILES)
    	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
    
    maintainer-clean-generic:
    mostlyclean-am:  mostlyclean-hdr mostlyclean-tags mostlyclean-generic
    
    mostlyclean: mostlyclean-recursive
    
    clean-am:  clean-hdr clean-tags clean-generic mostlyclean-am
    
    clean: clean-recursive
    
    distclean-am:  distclean-hdr distclean-tags distclean-generic clean-am
    	-rm -f libtool
    
    distclean: distclean-recursive
    	-rm -f config.status
    
    maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-tags \
    		maintainer-clean-generic distclean-am
    	@echo "This command is intended for maintainers to use;"
    	@echo "it deletes files that may require special tools to rebuild."
    
    maintainer-clean: maintainer-clean-recursive
    	-rm -f config.status
    
    .PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
    uninstall-iosdocDATA install-iosdocDATA \
    install-data-recursive uninstall-data-recursive install-exec-recursive \
    uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
    all-recursive check-recursive installcheck-recursive info-recursive \
    dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
    maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
    distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
    dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
    install-exec-am install-exec install-data-am install-data install-am \
    install uninstall-am uninstall all-redirect all-am all installdirs-am \
    installdirs mostlyclean-generic distclean-generic clean-generic \
    maintainer-clean-generic clean mostlyclean distclean maintainer-clean
    
    
    # Copy all the spec files. Of cource, only one is actually used.
    dist-hook:
    	for specfile in *.spec; do \
    		if test -f $$specfile; then \
    			cp -p $$specfile $(distdir); \
    		fi \
    	done
    
    # Tell versions [3.59,3.63) of GNU make to not export all variables.
    # Otherwise a system limit (for SysV at least) may be exceeded.
    .NOEXPORT:
    Last edited by Salem; 08-23-2006 at 04:47 PM. Reason: Use code tags for code, not BOLD - sheesh!

  11. #11
    xhi
    xhi is offline
    !anExpert
    Join Date
    Mar 2005
    Location
    pa
    Posts
    155
    well i dont think we needed the makefile after all.

    i just noticed -lgconf is not in there. you probably need to go to the project options and have it add the gconf lib to the linker.. though i dont know where that is done at in anjuta

  12. #12
    Registered User
    Join Date
    Jan 2006
    Posts
    62
    Yes I've tried that already (see build messages). That's why I was heading down the path of ill configured libraries and looking at ldconfig, not that I know what to look for though, hence my posts.

    /bin/sh ../libtool --mode=link gcc -Wall -g -g -O2 -o iop -L/usr/lib support.o main.o -lgtk-x11-2.0 -latk-1.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lX11 -lgconf
    mkdir .libs
    gcc -Wall -g -g -O2 -o iop support.o main.o -L/usr/lib /usr/lib/libgtk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm /usr/lib/libpangocairo-1.0.so -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes /usr/lib/libpango-1.0.so /usr/lib/libcairo.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libglib-2.0.so -lX11 -lgconf
    /usr/bin/ld: cannot find -lgconf
    collect2: ld returned 1 exit status
    make[2]: *** [iop] Error 1
    make[2]: Leaving directory `/home/lx1/Projects/iop/src'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/lx1/Projects/iop'
    make: *** [all-recursive-am] Error 2
    Completed ... unsuccessful
    Total time taken: 19 secs

  13. #13
    Registered User
    Join Date
    Jan 2006
    Posts
    62

    Thumbs up

    problem fixed! thank you everybody for your help. The problem was in fact adding the additional paths and libraries to my project (stupid)....so you were right, nothing to do with the Makefile...


    Thanks again!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Getting an error with OpenGL: collect2: ld returned 1 exit status
    By Lorgon Jortle in forum C++ Programming
    Replies: 6
    Last Post: 05-08-2009, 08:18 PM
  2. Undefined Reference Compiling Error
    By AlakaAlaki in forum C++ Programming
    Replies: 1
    Last Post: 06-27-2008, 11:45 AM
  3. Screwy Linker Error - VC2005
    By Tonto in forum C++ Programming
    Replies: 5
    Last Post: 06-19-2007, 02:39 PM
  4. C OpenGL Compiler Error?
    By Matt3000 in forum C Programming
    Replies: 12
    Last Post: 07-07-2006, 04:42 PM
  5. c++ linking problem for x11
    By kron in forum Linux Programming
    Replies: 1
    Last Post: 11-19-2004, 09:18 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21