Manual Building with g++

From NEOSYS Dev Wiki
Revision as of 09:16, 26 June 2009 by Steve (talk | contribs)
Jump to navigationJump to search

To give some insight into the automatic procedure.

First copy the headers to a standard include path

#include files
sudo cp exo*.h /usr/include
sudo cp mv*.h /usr/include

Ignore three warnings in /boost/thread/tss.hpp included from mvdbpostgres.cpp

#get into the source code
cd ~/exodus/trunk/exodus/mv/src
#compile all cpp
g++ -fPIC -c *.cpp
#compile all c
gcc -fPIC -c *.c
#link and output the library file
g++ -shared -o libexodus.so.1.0 *.o -lc -lpq -lboost_filesystem-gcc41-mt -lboost_regex-gcc41-mt\
 -lboost_thread-gcc41-mt -Wl,-soname,libexodus.so.1

Installing libexodus

This will place the libraries and include files so that you can compile from anywhere on the system

#copy to a standard library folder
sudo cp libexodus.so.1.0 /usr/lib
#register the library file with the linux library cache
sudo ldconfig -v
#create the pointer to version 1
sudo ln -sf /usr/lib/libexodus.so.1 /usr/lib/libexodus.so

Debugging

http://www.ibm.com/developerworks/library/l-shobj/

ldd libexodus.so.1.0|grep "not found"
ldd -u libexodus.so.1.0

Testing libexodus

g++ test.cpp -lexodus
./a.out
ldd -u a.out