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