Make file for shared objects


 
Thread Tools Search this Thread
Operating Systems Linux Make file for shared objects
# 1  
Old 12-16-2008
Make file for shared objects

dear Experts,

please help,

actually i am trying to create a .so(shared object through make file through ld)
i am not understaning how to proceed i have tried like
through command like i can do it in 2 step like
my progam :test2.c
Code:
$gcc -fPIC -c test2.c
$ld -shared -soname test2.so -o test2.so -lc test2.o

this gives me so
but same thing i am trying to achiee through Makefile

Code:

PROGRAM = test2.c
INCLUDEDIRS = \
	-I$(ARCENGINEHOME)/include \
	-I/usr/X11R6/include


LIBDIRS = \
	-L$(ARCENGINEHOME)/bin \
	-L/usr/X11R6/lib


LIBS = -larcsdk //here it is giving me error

CXXSOURCES = test2.c # list of source files
CXXOBJECTS = $(CXXSOURCES:.c=.o) # expands to list of object files
CXXFLAGS = -DESRI_UNIX $(INCLUDEDIRS)
CXX = g++

LDFLAGS = $(LIBDIRS) $(LIBS)
all: $(PROGRAM)
$(PROGRAM): $(CXXOBJECTS)
$(CXX) -o $@ $(CXXOBJECTS) $(LDFLAGS)
basic_sample.o: basic_sample.cpp basic_sample.h
$(CXX) $(CXXFLAGS) -c -o basic_sample.o basic_sample.cpp
clean:
$(RM) -f $(CXXOBJECTS) $(PROGRAM)
run:
./$(PROGRAM)

[/code]

but here i want to add test.a which takes the object files like
Code:
ar -ur test2.a test2.o

and through this i want to create test2.so
please help me how to achieve this.

expecting your help.
# 2  
Old 12-17-2008
I think this would be better placed in the High Level Programming - The UNIX and Linux Forums forum.

I assume
Code:
PROGRAM = test2.c

should be something like
Code:
PROGRAM = test2

Since you already have the commands to create static and shared libraries, all you have to do is add to the makefile the library as a target, the object files as dependencies and put this command as the rule, e.g.
Code:
test2.so: test2.o
        ld -shared -soname test2.so -o test2.so -lc test2.o
test2.a: test2.o
        ar -ur test2.a test2.o

and then run make test2.a test2.so to see if it works.
You can then (and perhaps should) generalise the rules with automatic variables and so on.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Shared objects -urgent please help me out

Hi All...... I have my tool in my one server lets say E1 and same tool I tried to install in E2 server so everything is fine but, while executing the my tool for example... $ ./batch At that time Im getting this following error. ./batch: error while loading shared libraries: libqabwvcd.so:... (3 Replies)
Discussion started by: ksrivani
3 Replies

2. Programming

Creation and Accessing Shared Objects (.so)

Hi, I am looking for references about creating and accessing Shared Objects (.so) through C/C++ on Unix / Linux platforms. Is it possible and where can I find the info. Thanks Phil (1 Reply)
Discussion started by: phil nascimento
1 Replies

3. Programming

g++ with -frepo and shared objects...

G'day, I have been working with a large application that makes extensive use of templates. When compiled under Unix (with g++), this sees some rather impressive bloat. I have been trying to make a temporary quick-fix by using the -frepo option, which results in dramatically smaller shared... (0 Replies)
Discussion started by: Elric of Grans
0 Replies

4. AIX

Wrong Shared objects getting loaded

I have two envoirmets(Envoirment A and Envoirment B) running on same server(AIX vesion 5.3).Both have different groups.I am facing a strange problem.Shared objects of one envoirment (Envoirment A)are getting loaded into the second(Envoirment B).So the servers that have dependency on shared objects... (2 Replies)
Discussion started by: nitin@tcs
2 Replies

5. UNIX for Advanced & Expert Users

debugging shared objects

Hi, i am trying to debug a binary which is using a shared lib. but i could not succeed in tracking the code flow in the classes defined in this library. i get: class MyClass <opaque> error i followed the instructions in the link below:... (0 Replies)
Discussion started by: yakari
0 Replies

6. UNIX for Advanced & Expert Users

Shared Objects

Hi. Does anyone know by how much a text size of an executable(on ibm) would grow if you link one shared object(library)? Is it a constant number or it depends on a .so that is linked? (3 Replies)
Discussion started by: Yura
3 Replies

7. Programming

Linking with shared objects

hi all ! Do I need all the shared objects to be present while compiling my code which has reference to a only one shared object, which in turn refers to another shared object. for example I want to compile example.c which refers to sample.so sample.so has refrence to anothersample.so do... (2 Replies)
Discussion started by: disclaimer
2 Replies

8. UNIX for Dummies Questions & Answers

Shared Objects

Hi Friends ! I have a library, say libxyz.a. To view all the object files in the archive, i issued the command : ar -t libxyz.a which displayed all the object files it contains. Now, I would like to know the functions in each object file. Is there any such command that displays... (3 Replies)
Discussion started by: mrgubbala
3 Replies

9. Programming

Shared memory and C++ Objects (cont)

I asked the next question in a former thread : Can I safely share objects that have virtual functions (i.e. have virtual function table pointers) between two processes ? Where will the pointers point to in each process ? The objects are supposed to reside in shared memory I received a... (6 Replies)
Discussion started by: Seeker
6 Replies

10. Programming

Runtime Linking shared Objects

I'm runtime linking (dlopen and dlsym) to a shared object (library) I've created and after a number of function calls into the library the program core dumps (Illegal operation). This only occurs during runtime linking. If I use the same library and dynamically link during compile time everything... (3 Replies)
Discussion started by: dneely
3 Replies
Login or Register to Ask a Question