Bonjour,

sous Aix, j'ai compilé des bibliothèques partagées.
J'ai un makefile générique qui me permet de compiler du C et du pro*C.

Sur une bibliothèque uniquement en C, j'ai 'en dur' dans le .so :
"/OPT/oracle/product/10gr2/lib:/USR/pwrmbed/usr/lib:/usr/lib:/liblibc.ashr_64.olibpthread.a"

Comment se fait-il que j'ai ces répertoires en "dur" dans ma bibliothèque ?

Merci
Michel

makefile générique : env_precomp.mk
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
.SUFFIXES :
.SUFFIXES : .pc .c .o .bin
LIBSOCKETS = -lnsl -lpthread
 
CC = xlc -c -g -qarch=pwr6 -qtune=pwr6 -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS $(LIBS) -I$(INC) -I$(ORACLE_HOME)/precomp/public -I$(O
RACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/plsql/public -I$(ORACLE_HOME)/network/public
 
GCC = xlc -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS -g
PROCPPFLAGS= define=__64BIT__ code=ANSI_C include=/usr/include include=$(HOME)/src/inc include=$(ORACLE_HOME)/precomp/public nls_local=
yes varchar=yes
PROCPLSFLAGS= sqlcheck=full userid=$(usercomp)/$(passwcomp)@${ORACLE_SID}
PROC=proc threads=YES
PROCBO=proc
LIBS = -lpthread -L$(HPS_LIBPATH) -lbatchutils -lpthr -lqueue -lcomora -ltools -lutils -lpiso -lprivtlv -lprocessing -lutils -lauthotlv
 -lget -lpiccprod -lprivtlvemv -L$(ORACLE_HOME)/lib $(ORACLE_LINK) -lclntsh
LLIBTHREAD   =-lpthread -lnsl
LIBSSTANDARD =-lpthr -lqueue -lcomora -ltools -lpiso -lget
LIBSTH=$(LIBS)
CGC          =$(CC) -q64 -c -g -D_THREAD_SAFE -D$(PLATFORM) $(LIBSSTANDARD) -I$(INC) -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/r
dbms/public -I$(ORACLE_HOME)/plsql/public -I$(ORACLE_HOME)/network/public
CGO          =$(CC)     -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS -D$(PLATFORM) -g
et mon makefile spécifique à la librairie est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
include $(HOME)/src/libs/env_precomp.mk
 
SHARED_LIBNAME=
SO_CMD=$(HOME)/usr/lib/libcmd.so
LIB=$(HOME)/usr/lib
BIN=$(HOME)/usr/bin
INC=$(HOME)/src/inc
EXC=$(HOME/src/daemons/external_proc
 
.c.o :
    $(CC) $< -I$(ORACLE_HOME)/precomp/public
 
all: extproc_callback_cmd 
    echo "built"
 
OBJ_CMD= execute_cmd.o \
       dump_batch.o
 
dump_batch.o:$(HOME)/src/libs/batchutils/dump_batch.c
    $(CC) $(HOME)/src/libs/batchutils/dump_batch.c
 
extproc_callback_cmd: $(OBJ_CMD)
    rm -f $(SO_CMD) $(SO_CMD).exp 1>/dev/null 2>/dev/null
    generate_export_list() \
    { \
        /bin/nm -B -h -g "$$1" | grep -v ' U ' | awk '{print $$3}' | \
     egrep -v '^\.|^TOC' | sort | uniq ; \
    }; \
    generate_export_list $(OBJ_CMD) > $(SO_CMD).exp; \
    $(LD) -bnoentry -bM:SRE -bE:$(SO_CMD).exp -o $(SO_CMD)\
    $(OBJ_CMD) -L$(ORACLE_HOME)/lib $(LIBS) -lc_r $(OCISHAREDLIBS) $(LIBEXTP) \
    $(LIBSQL) $(TTLIBS) $(DEF_OPT) $(SSDBED) $(LIBAGENT) $(LIBEPCPT) \
        $(ORACLE_LINK)