Howdy John et al,

Thanks to everyone who sent me an email, after "playing" all night, I came
up with the following two make files. The first builds my shared library,
the second links the MQ C++ shared libraries (and mine) into a test program.

I sugest you file this one away because it is bound to be usefull.

Sid


#-------------------------------------------------
# Build my various Classes into a shared library
#
CC=g++
TARGET = /opt/mqlink/lib/libmqlink.so
INCLUDE = -I/opt/pgp/headers -I/opt/mqm/inc
OBJECTS = Log.o DataFile.o HL7.o Segment.o MQSupport.o MQAdmin.o BaseXML.o
MD5Hash.o Crypto.o
#DEBUG = -D_DEBUG
DEBUG=
LIBFLAGS= -fPIC -shared -rdynamic
CFLAGS= -fPIC

.cpp.o:
        $(CC) $(CFLAGS) -c $(INCLUDE) $(DEBUG) 2>&1 $<

all:
        $(MAKE) $(TARGET)
        $(MAKE) lib

$(TARGET): $(OBJECTS)

lib:
        $(CC) $(LIBFLAGS) -o $(TARGET) $(OBJECTS)

clean:
        rm -f *.o
       [rm -f $(TARGET)

-------------------------8<----------------------------


#--------------------------------------------------------------------
# Build our test program and link in the shared libraries
#
# Note: use "ldd" to confirm whats been linked in.
#       Make sure the LD_LIBRARY_PATH is set to include our library.

CC=g++
TARGET=test
OBJS = test.o
LIBS = -ldl -L/opt/mqlink/lib -lmqlink -limqs23gl -limqb23gl
#
# Our Archives (static)
#
ARCS = /opt/pgp/libraries/static/release/libPGPsdk.a
INCLUDE = -I/opt/pgp/headers -I/opt/mqlink/src/commoncode -I/opt/mqm/inc
LDFLAGS=
#DEBUG= -D_DEBUG
DEBUG=
CFLAGS=-fPIC -rdynamic

.cc.o:
        $(CC) -c $< $(INCLUDE) $(LIBS) $(ARCS) $(DEBUG) 2>&1
all:
        $(MAKE) $(TARGET)

# Compile program,
#
$(TARGET):      $(ARCS) $(OBJS) $(LIBS)
        $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) $(INCLUDE) -o $(TARGET)
2>&1 $<

lib:
        @cd /opt/mqlink/src/commoncode; if ls *.o >/dev/null 2>&1; then
$(MAKE) lib; fi


clean:
        @echo "Cleaning up"
        rm -f *.o
        rm -f $(TARGET)
------------------------------8<-------------------------------------






-----Original Message-----
From: Roger Lacroix [mailto:[EMAIL PROTECTED]
Sent: Saturday, 31 May 2003 2:04 AM
To: [EMAIL PROTECTED]
Subject: Re: Compiling shared libraries


Here is a makefile for Linux.  This makefile compiles test1.c into a shared
library of test1.so

+++++++++++++ cut here ++++++++++++++
# Makefile

CC = cc

CFLAGS = -G -I.  -DUNIX
CFLAGS_COMPILE_ONLY = -c -DUNIX

LIBS = -lmqm

#
.c.o:
         ${CC} ${CFLAGS_COMPILE_ONLY} ${CFLAGS} $<

OBJ = test1.o

all: test1.so

test1.so: ${OBJ}
         ${CC} ${CFLAGS} -G -o $@ ${OBJ} ${LIBS}
+++++++++++++ cut here ++++++++++++++

Make sure when you cut and paste this makefile that the indented lines use
a single tab and NOT spaces.

later
Roger...



At 10:53 AM 5/30/2003, you wrote:
>It has been a while since I compiled on Linux, so you may want to check the
>help.  I assume you are using GNU C++ compiler so try doing gcc --help I
>believe.  If my guess it right it is '-G' or similar.
>
>Hope this helps.
>
>Roger, since you have a Linux system could you help this fellow ;-)
>
>Chris
>
>
>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
>Sent: Friday, May 30, 2003 7:30 AM
>To: [EMAIL PROTECTED]
>Subject: Compiling shared libraries
>
>
>Howdy all,
>
>I am porting some C++ MQ code from Win32 to Linux and have never used
shared
>libraries.
>
>While I can comile my MQ code, I cannot figure out how to link the shared
>libraries (static libraries are ok).
>
>Can anyone give me some usefull pointers ?
>
>
>Sid
>
>Instructions for managing your mailing list subscription are provided in
>the Listserv General Users Guide available at http://www.lsoft.com
>Archive: http://vm.akh-wien.ac.at/MQSeries.archive
>
>Instructions for managing your mailing list subscription are provided in
>the Listserv General Users Guide available at http://www.lsoft.com
>Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Reply via email to