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
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 .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
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)
Partager