pro*c±à¶Ô²½Öè
step one£º½«.pcÎļþÔ¤±àÒëΪ.c
[ecif@localhost zyctest]$ proc sample1.pc
ÏÔʾÐÅÏ¢£º
Pro*C/C++: Release 10.2.0.1.0 - Production on Tue Apr 13 14:07:05 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
System default option values taken from: /home/oracle/oracle/product/10.2.0/db_1/precomp/admin /pcscfg.cfg
step two£º±àÒë.cÎļþ£¬Éú³ÉÄ¿±êÎļþ
gcc -L$ORACLE_HOME/precomp/public -I/home/oracle/oracle/product/10.2.0/db_1/precomp /public/ -c sample1.c
Ìáʾ¾¯¸æ£º
sample1.c: In function `main':
sample1.c:236: warning: return type of 'main' is not `int'
step three£ºÁ´½ÓÄ¿±êÎļþ£¬Éú³É¿ÉÖ´ÐгÌÐò
gcc -L$ORACLE_HOME/lib -lclntsh -o sample1 sample1.o
¾¯¸æ£º
sample1.o(.text+0x381): In function `main':
: warning: the `gets' function is dangerous and should not be used.
step four£ºÖ´ÐÐÎļþ
./sample1
ÔÚÖ´ÐÐ./samle1³öÏÖ£º
error while loading shared libraries: /oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1: cannot restore segment prot after reloc: Permission denied
½â¾öµÄ°ì·¨ÊÇ£º
chcon -t texrel_shlib_t /oracle/product/10.2.0/db_1/lib/*.so
Ïà¹ØÎĵµ£º
¹Ø¼ü´Ê£º
Õ»Çø£º¾ÍÊÇÒ»¸öÄÚ´æµØÖ·¿Õ¼ä£¬Ã¿µ÷ÓÃÒ»´Îº¯Êý¾Í»áÔÚÕ»ÇøÎª´Ëº¯Êý·ÖÅäÒ»¶Î¿Õ¼ä£¨Ö÷ÒªÓÃÓÚ´æ´¢¾Ö²¿±äÁ¿£¬
´Ë¶Î¿Õ¼äÏÂÃæ¾ÍÖ±½Ó¶¨ÒåΪº¯ÊýÕ»£©
ebp :ÓÃÓÚ´æ·Åº¯ÊýÕ»µÄÕ»¶¥µØÖ·
esp:ÓÃÓÚ´æ·Å´Ëº¯ÊýÕ»µÄÕ»µ×µØÖ·
×¢Ò⣺ջ¶¥µØÖ·´óÓÚÕ»µ×µØÖ·£¬Õ»ÊÇ´ÓÕ»¶¥ÏòÕ»µ×Ôö³¤¡£¼´ebp-->esp;
ÏÂÃæÎÒÃÇ·ÖÎöÈçÏ´úÂëÀý×Ó£¬¿´ ......
Ò»¡¢ÌáǰµÄ»°
¡¡¡¡ÒªËµCÓïÑÔºÍLinuxµÄ¹ØÏµ´ó¼ÒÓ¦¸Ã¶¼²»»áİÉú£¬LinuxϵͳÄں˾ÍÊÇÓÃCÓïÑÔ¿ª·¢µÄ£¬ËùÒÔËùÓеÄLinuxϵͳÏÂÃæ ¶¼»áÓÐCµÄ±àÒëµ÷ÊÔ¹¤¾ß£¬²»¹ýÕâЩ¹¤¾ß¶¼ÊÇÃüÁîʽµÄ£¬Õýʽ¿ª·¢µÄ»°»áºÜ²»·½±ã¡£FedoraÔÚ°²×°µÄʱºò¿ÉÒÔÑ¡Ôñ°²×°Fedora Eclipse£¬Õâ¸öIDEºÜÇ¿´ó£¬C£¬C++£¬Java£¬PythonµÈµÈ¶¼Ö§³Ö£¬¶øÇÒ±àÒ룬µ÷ÊÔºÍ ......
1.3 µ¥Ôª²âÊÔÄܲúÉúÄÄÐ©Ð§Òæ£¿
µ¥Ôª²âÊÔµÄÐ§ÒæÒѾµÃµ½¹ã·ºµÄÈÏͬ£¬ÏÖÔÚµÄÎÊÌâÒѾ²»ÊÇÓÐûÓбØÒª×ö£¬Öµ²»ÖµµÃ×ö£¬¶øÊÇÈçºÎ¶à¿ìºÃÊ¡µØ×öºÃµ¥Ôª²âÊÔ£¬ËùÒÔ£¬¹ØÓÚÐ§Òæ£¬ÕâÀïÖ»ÊǼòµ¥µÄ½éÉÜһϡ£
Ð§ÒæÒ»£¬±£Ö¤´úÂëÖÊÁ¿
Ö»Óе¥Ôª²âÊÔ²ÅÄÜÍêÕû¼ì²â´úÂëµ¥ÔªµÄ¹¦Ä ......
extern "C"
Ŀ¼
¸ÅÊö ±àÒ뷽ʽ ϰ¹ßÓ÷¨
¸ÅÊö
¡¡¡¡extern "C" °üº¬Ë«Öغ¬Ò壬´Ó×ÖÃæÉϼ´¿ÉµÃµ½£ºÊ×ÏÈ£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä´Î£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£ÈÃÎÒÃÇÀ´Ïêϸ½â¶ÁÕâÁ½Öغ¬Òå¡£
¡¡¡¡£¨1£© ±»extern "C"ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵Ä
¡¡¡¡externÊÇC/C++ÓïÑÔÖбíÃ÷º¯Ê ......
ºÎΪָÕë £¿
¡¡¡¡Ö¸Õë»ù±¾ÉÏºÍÆäËüµÄ±äÁ¿Ò»Ñù£¬Î¨Ò»µÄÒ»µã²»Í¬¾ÍÊÇÖ¸Õë²¢²»°üº¬Êµ¼ÊµÄÊý¾Ý£¬¶øÊǰüº¬ÁËÒ»¸öÖ¸ÏòÄÚ´æÎ»ÖõĵØÖ·£¬Äã¿ÉÒÔÔÚÕâ¸öµØÖ·ÕÒµ½Ä³Ð©ÐÅÏ¢¡£ÕâÊÇÒ»¸öºÜÖØÒªµÄ¸ÅÄ²¢ÇÒÐí¶à³ÌÐò»òÕß˼Ïë¶¼Êǽ«Ö¸Õë×÷ΪËüÃǵÄÉè¼Æ»ù´¡£¬ÀýÈçÁ´±í¡£
¿ªÊ¼
¡¡¡¡ÈçºÎ¶¨ÒåÒ»¸öÖ¸Õ룿ßÀ£¬¾ÍÏñ¶¨ÒåÆäËüµÄ±äÁ¿Ò»Ñù£¬²»¹ýÄ㻹Р......