[Expat-discuss] Don't want wrapper scripts.

Andrew Hardy Andrew.Hardy at marconi.com
Tue Apr 26 15:58:32 CEST 2005


I just want to compile my programs that link in the expat library.

Why can't I do this!

Why do I have to use libtools and have the wrapper scripts and my
executables placed in .libs?

I have a line in the make that makes my object file, then links this with
the library, and I get no compilation or linking errors, but I cannpot seem
to run the executable cos it cannot find libexpat.so.0, so I have added
this file to the linking line in the make file and I get the following at
the command line when I make, but I still cannot run the executable!

How do I just create the executable so it has everything it needs to run
and nothing else?

gcc -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions
-DHAVE_EXPAT_CONFIG_H -I../expat/lib -I. -o myprog.o -c myprog.c
gcc -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions
-DHAVE_EXPAT_CONFIG_H -I../expat/lib -I. -o myprog myprog.o
../expat/lib/libexpat.so.0.5.0 -L../expat/lib -lexpat
ld: warning: file ../expat/lib/libexpat.so: linked to
../expat/lib/libexpat.so.0.5.0: attempted multiple inclusion of file

host> myprog
ld.so.1: myprog: fatal: libexpat.so.0: open failed: No such file or
directory
Killed
host>

Can some-body help me?

Andrew H.





----- Forwarded by Andrew Hardy/MAIN/MC1 on 26/04/2005 14:51 -----
|---------+---------------------------------->
|         |           "Andrew Hardy"         |
|         |           <Andrew.Hardy at marconi.c|
|         |           om>                    |
|         |           Sent by:               |
|         |           expat-discuss-bounces at l|
|         |           ibexpat.org            |
|         |                                  |
|         |                                  |
|         |           26/04/2005 14:07       |
|         |                                  |
|---------+---------------------------------->
  >--------------------------------------------------------------------------------------------------------------------------------------------------|
  |                                                                                                                                                  |
  |       To:       expat-discuss at libexpat.org                                                                                                       |
  |       cc:                                                                                                                                        |
  |       Subject:  Re: [Expat-discuss] Don't want wrapper scripts.                                                                                  |
  >--------------------------------------------------------------------------------------------------------------------------------------------------|





----- Forwarded by Andrew Hardy/MAIN/MC1 on 26/04/2005 14:07 -----
|---------+---------------------------->
|         |           Andrew Hardy     |
|         |                            |
|         |           26/04/2005 14:04 |
|         |                            |
|---------+---------------------------->

>--------------------------------------------------------------------------------------------------------------------------------------------------|

  |
|
  |       To:      "Carlos Atabales" <catabales at hotmail.com>@MCEXT
|
  |       cc:
|
  |       Subject: Re: [Expat-discuss] Don't want wrapper scripts.(Document
link: Andrew Hardy)                                                      |

>--------------------------------------------------------------------------------------------------------------------------------------------------|




I have tried what you have said.

It's a little bit different because the code I am compiling and linking is
not locaed where outline is and your code snippet would not work.

At the command line I see this happening:

gcc -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions
-DHAVE_EXPAT_CONFIG_H -I../expat/lib -I. -o myprog.o -c myprog.c
gcc -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions
-DHAVE_EXPAT_CONFIG_H -I../expat/lib -I. -o myprog myprog.o -L../expat/lib
-lexpat

But when I run the executable, I get this

host> myprog
ld.so.1: myprog: fatal: libexpat.so.0: open failed: No such file or
directory
Killed
host>

Can you advise.

Thanks,

Andrew.





|---------+---------------------------------->
|         |           "Carlos Atabales"      |
|         |           <catabales at hotmail.com>| |         |           Sent
by:               |
|         |           expat-discuss-bounces at l|
|         |           ibexpat.org            |
|         |                                  |
|         |                                  |
|         |           21/04/2005 23:08       |
|         |                                  |
|---------+---------------------------------->

>--------------------------------------------------------------------------------------------------------------------------------------------------|

  |
|
  |       To:       expat-discuss at libexpat.org
|
  |       cc:
|
  |       Subject:  [Expat-discuss] Don't want wrapper scripts.
|

>--------------------------------------------------------------------------------------------------------------------------------------------------|





default makefile write wrapper scripts, not binaries programs.
this are the firsts line in a program.
# The outline program cannot be directly executed until all the libtool
# libraries that it depends on are installed.
#
# This wrapper script should never be moved out of the build directory.
# If it is, it will not operate correctly.
it's the solution a yuor problems....

CC=cc
FLAGS= -L../lib -I../lib
LIBS= -lexpat
outline: outline.c
        $(CC) $(FLAGS) -o outline outline.c $(LIBS)

clean:
        rm outline outline.o
------------

this is examples in directory /home/catabales/expat-1.95.8/examples

[catabales at desarrollo examples]$ file outline
outline: Bourne shell script text executable

[catabales at desarrollo examples]$ more outline
#! /bin/sh

# outline - temporary wrapper script for .libs/outline
# Generated by ltmain.sh - GNU libtool 1.4.2 (1.922.2.53 2001/09/11
03:18:52)
#
# The outline program cannot be directly executed until all the libtool
# libraries that it depends on are installed.
#
# This wrapper script should never be moved out of the build directory.
# If it is, it will not operate correctly.

# Sed substitution that helps us do robust quoting.  It backslashifies
# metacharacters that are still active within double-quoted strings.
Xsed='sed -e 1s/^X//'
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
.......etc

------------------------------------

I compile and install the library in one location and I compile and link my
programs in another.

I had problems at first, but now I know that my programs are correctly
compiling and linking in the library, because I copy the binaries to an
independant location and they run and work fine as expected.

However, Where I make my programs I still get the wrapper scripts in ./ and
the binaries in ./.lib

Here is a snippet of my makefile, but be aware there is more to make it
work right, I just think the change I may be able to make is probably
some-where in here.

SHELL = /bin/bash
srcdir = ../expat
top_builddir = ../expat
LIBRARY = $(srcdir)/libexpat.la
LIBTOOL = $(SHELL) $(top_builddir)/libtool
INCLUDES = -I$(srcdir)/lib -I.
CFLAGS = -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions
-DHAVE_EXPAT_CONFIG_H
LTFLAGS = --silent
COMPILE = gcc $(CFLAGS) $(DEFS) $(INCLUDES)
LINK_EXE = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) -o $@

etc...

Can any-one tell me how I might just generate the target binaries into ./
and not the wrapper scripts.

Many thanks in anticipation,

Andrew.

_________________________________________________________________
MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/

_______________________________________________
Expat-discuss mailing list
Expat-discuss at libexpat.org
http://mail.libexpat.org/mailman/listinfo/expat-discuss






_______________________________________________
Expat-discuss mailing list
Expat-discuss at libexpat.org
http://mail.libexpat.org/mailman/listinfo/expat-discuss






More information about the Expat-discuss mailing list