锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
#define DEBUG_PREFIX ACE_TEXT("DEBUG%I")
#define MY_DEBUG(FMT, ...)聽聽聽 \
聽聽聽聽聽聽聽 ACE_DEBUG((LM_DEBUG, \
聽聽聽聽聽聽聽 DEBUG_PREFIX FMT \
聽聽聽聽聽聽聽 __VA_ARGS__ ))
緙虹渷鍙蜂唬琛ㄤ竴涓彲浠ュ彉鍖栫殑鍙傛暟琛ㄣ備嬌鐢ㄤ繚鐣欏悕 __VA_ARGS__ 鎶婂弬鏁頒紶閫掔粰瀹忋?br />褰撳畯鐨勮皟鐢ㄥ睍寮鏃訛紝瀹為檯鐨勫弬鏁板氨浼犻掔粰浜嗐備緥濡傦細
MY_DEBUG("YEQING")
MY_DEBUG()鏄竴涓彲鍙樺弬鏁板畯錛屼綘鑳藉湪姣忎竴嬈¤皟鐢ㄤ腑浼犻掍笉鍚屾暟鐩殑鍙傛暟錛?/font>
MY_DEBUG("YEQING ","IS ","A HANDSOME BOY");
鍙彉鍙傛暟瀹忎笉琚獳NSI/ISO C++ 鎵姝e紡鏀寔銆傚洜姝わ紝浣犲簲褰撴鏌ヤ綘鐨勭紪璇戝櫒錛岀湅瀹冩槸鍚︽敮鎸佽繖欏規妧鏈?br />鑷沖皯鍦ㄦ垜鑷繁嫻嬭瘯鐨勮繃紼嬶紝VS6鏄笉鏀寔鐨?br />浣嗘槸linux as3鏀寔
浣跨敤鐨勬槸gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-20)
婧愮爜錛?br />----------------------------------------------------------
#include "ace/Log_Msg.h"
void foo (void);
int ACE_TMAIN (int, ACE_TCHAR *[])
{
ACE_TRACE(ACE_TEXT ("main"));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHi Momn")));
foo();
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IGoodnightn")));
return 0;
}
void foo (void)
{
ACE_TRACE (ACE_TEXT ("foo"));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHowdy Pardnern")));
}
杈撳嚭錛?br />---------------------------------------------------------
[root@myserver projs]# ./tmp
Hi Mom
Howdy Pardner
Goodnight
闇瑕佽緗畯ACE_NTRACE錛岄粯璁ょ姸鎬佹槸涓嶈褰昑RACE淇℃伅鐨勩?br />#define ACE_NTRACE 0聽 璁板綍鏃ュ織
#define ACE_NTRACE 1聽 涓嶈褰曟棩蹇?/font>
鍙互浣跨敤涓涓嬩袱縐嶆柟娉曡В鍐抽棶棰橈細
1銆佷慨鏀規枃浠朵唬鐮?br />#define ACE_NTRACE 0
#include "ace/Log_Msg.h"
error錛?br />璁頒綇涓嶈鎶婁笂闈㈢殑欏哄簭緇欏啓鍙嶅憿
鍐欐垚浜嗭細
#include "ace/Log_Msg.h"
#define ACE_NTRACE 0
2銆佸湪緙栬瘧鍛戒護涓婂鍔犲畾涔夊畯鐨勫懡浠?br />鍙互澧炲姞濡備笅閫夐」聽 -DACE_NTRACE
聽
浣跨敤VS6緙栬瘧錛?/font>
1銆佹彁紺烘湁鈥淐annot open include file: 'ace/SOCK_Acceptor.h':No such file or directory鈥?br />宸ョ▼-璁劇疆-C/C++: Preprocessor,闄勫姞鍖呭惈璺緞錛欻:\ACE\ACE-5.5\ACE_wrappers
2銆佹彁紺烘湁鈥?You must link against multi-threaded libraries when using ACE (check your project settings)鈥?br />宸ョ▼-璁劇疆-C/C++: Code Generation - Use run-time library : Debug Multithreaded Dll
3銆佹彁紺烘湁鈥渆rror C2065: 'ACE_ERROR' : undeclared identifier鈥?br />聽聽聽聽聽聽聽 error C2065: 'ACE_DEBUG' : undeclared identifier
#include "ace/Log_Msg.h"
4銆佹彁紺篹rror C4716: 'ace_main_i' : must return a value
鍦╩ain涓姞鍏?return 0;
5銆佹彁紺衡渆rror LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl鈥?br />宸ョ▼-璁劇疆-Link-Input: 瀵硅薄/搴撴ā鍧楋細娣誨姞ACEd.lib聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
闄勫姞搴撹礬寰勶細H:\ACE\ACE-5.5\ACE_wrappers\lib聽
浣跨敤linux緙栬瘧錛?br />makefile 鏂囦歡濡備笅錛?br />ACE_LIB = $(ACE_ROOT)/ace
LFLAGS = -L$(ACE_LIB) -lACE
CFLAGS = -Wall -O2 -D NDEBUG
IFLAGS = -I $(ACE_ROOT)
OBJS = test_ace.o
聽聽聽聽聽聽
all: test_ace.exe
聽聽聽聽聽聽聽聽聽
test_ace.exe: $(OBJS)
聽g++ -o $@ $(OBJS) $(LFLAGS)
聽@echo done!
聽聽聽聽聽聽聽聽聽聽聽聽
test_ace.o: test_ace.cpp
聽g++ -c $(CFLAGS) $(IFLAGS) $<
聽聽聽
clean:
聽@rm *.o *.exe
聽@echo done!
1.涓嬭澆鏈鏂扮殑ACE Release鐗堟湰鍘嬬緝鍖咃紝瑙e帇鍚庣洰褰曚負: ACE-鐗堟湰鍙穃ACE_wrappers\
2.鍔犺澆宸ョ▼鏂囦歡錛岀洰褰? ACE_wrappers\ace\ace.dsw
3.鏂板緩 config.h 鏂囦歡鍒?ACE_wrappers\ace鐩綍涓?br />4.娣誨姞鍖呭惈澶存枃浠跺0鏄? #include "ace/config-win32.h"
5.娣誨姞瀹忓畾涔?(娉ㄦ剰:娣誨姞鍦?#include 涔嬪墠)
聽(1).#define ACE_HAS_WINNT4 0聽 //OS涓嶆槸NT4.0鎴栦互鍚庣増鏈?br />聽(2).#define ACE_HAS_STANDARD_CPP_LIBRARY 1聽 //浣跨敤鏍囧噯C++搴?br />聽(3).#define ACE_HAS_MFC 1聽聽聽聽聽聽聽聽聽 //浣跨敤MFC搴?br />聽(4).#define THR_USE_AFX 1聽聽聽聽聽聽聽聽聽 //浣跨敤CWinThread浜х敓鏂扮殑綰跨▼綾?br />聽(5).#define ACE_USES_STATIC_MFC聽 1 //闈欐佽繛鎺FC搴?br />聽(6).#define ACE_AS_STATIC_LIBS聽聽 1 //鐢熸垚闈欐佺殑ACE搴?br />聽(7).#define ACE_NO_INLINE聽聽聽聽聽聽聽聽聽 //鏄惁浣跨敤鍐呰仈鍑芥暟鍦ㄩ潤鎬佸簱鍐?br />6.緙栬瘧寰楀埌.lib鍜?dll鏂囦歡
濂借薄浣跨敤鏃舵湁涓棶棰橈紝涓嶇煡閬撳ぇ瀹舵湁娌℃湁紕板埌榪?
1. 鍦ㄤ嬌鐢ˋCE鍙戝竷Release鐗堟湰紼嬪簭鏃訛紝
TryEnterCriticalSection瀵艱嚧鏃犳硶緙栬瘧鐨勯棶棰?/font>
瑙e喅鏂規硶:
聽 (1). 宸ョ▼ Project-->setting-->C/C++聽 鍐欏叆:_WIN32_WINNT=0x0500
聽 (2).鍖呭惈澶存枃浠朵負:windows.h
聽
濡傛灉鏈夆淐annot open include file: 'ace/SOCK_Acceptor.h':No such file or directory鈥?br />宸ョ▼-璁劇疆-C/C++: Preprocessor,闄勫姞鍖呭惈璺緞錛欴:/ACE_wrappers
濡傛灉鏈夆?You must link against multi-threaded libraries when using ACE (check your project settings)鈥?br />宸ョ▼-璁劇疆-C/C++: Code Generation - Use run-time library : Debug Multithreaded Dll
濡傛灉鏈夆渆rror C2065: 'ACE_ERROR' : undeclared identifier鈥?br />聽聽聽聽聽聽聽 error C2065: 'ACE_DEBUG' : undeclared identifier
#include "ace/Log_Msg.h"
error C4716: 'ace_main_i' : must return a value
聽聽聽 鍦╩ain涓姞鍏?br />聽聽聽聽聽聽聽 return 0;
鈥渆rror LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl鈥?br />宸ョ▼-璁劇疆-Link-Input: 瀵硅薄/搴撴ā鍧楋細娣誨姞aced.lib聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
闄勫姞搴撹礬寰勶細D:\ACE_wrappers\ace聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
緙栬瘧client涓亣鍒扮殑闂
1銆乪rror C2039: 'sprintf' : is not a member of 'ACE_OS'
聽聽聽
聽聽聽 #include "ace/OS_NS_stdio.h"
聽聽聽
2銆乪rror C2039: 'strlen' : is not a member of 'ACE_OS'
聽聽聽 #include "ace/OS_NS_string.h"
3銆乪rror C2059: syntax error : '?'
聽聽聽 閿欒鍦ㄨ繖涓鍙ワ細聽 ACE_DEBUG((LM_DEBUG,?Usage egX <hostname> <port_number>\n?));
聽聽聽 灝?鏀逛負"
聽聽聽
4銆佹棤娉曟壘鍒板姩鎬侀摼鎺ュ簱aced.dll浜庢寚瀹氱殑璺緞
聽聽聽 涓虹郴緇熷彉閲廝ATH鍔犱笂D:\ACE_wrappers\bin
聽聽聽
聽聽聽
聽聽聽
闈欐佸寘鍚細
聽聽 宸ョ▼-璁劇疆-C/C++-棰勫鐞嗙▼搴忓畾涔変腑鍔犲叆 ,ACE_AS_STATIC_LIBS
聽聽
*********************************************************************************
鍦↙inux緋葷粺涓畨瑁呭拰閰嶇疆ACE
鍑嗗宸ヤ綔錛?/font>
1.紜繚浣犵殑Linux鎿嶄綔緋葷粺鐨勫紑鍙戠幆澧?gcc銆乵ake鈥︹?鏄畬鏁翠笖鍙敤鐨勩?br />2.鍦ㄥ畨瑁匒CE鐨勮繃紼嬩腑錛屽彲鑳介渶瑕乺oot鏉冮檺錛屽洜姝ょ‘淇濅綘鎷ユ湁root甯愭埛鐨勫瘑鐮併?br />3.瀵逛簬鍏稿瀷鐨凴edhat9緋葷粺錛宎utoconf紼嬪簭鐨勭増鏈彲鑳借繃浣庯紝浣犻渶瑕侀鍏堝崌綰у畠銆?/font>
聽聽 鍗囩駭鐨勬楠ゅ涓嬶細
鍦ㄦ帶鍒跺彴涓緭鍏?autoconf -V錛屾煡鐪嬩綘鐨刟utoconf紼嬪簭鐨勭増鏈?
濡傛灉浣庝簬2.57g錛屼綘闇瑕佸埌
http://www.gnu.org/software/autoconf/
鍘諱笅杞芥渶鏂扮増鏈殑autoconf紼嬪簭錛岀洰鍓峚utoconf紼嬪簭鐨勭増鏈槸2.59
鏍規嵁tarball涓殑瀹夎璇存槑錛岀紪璇戝茍瀹夎鍗囩駭autoconf紼嬪簭
寮濮嬪畨瑁咃細
緇忚繃涓婇潰鐨勫噯澶囧伐浣滐紝鐜板湪浣犲凡緇忓叿澶囦簡瀹夎ACE鐨勬潯浠躲備笅闈㈠紑濮嬫寮忕殑瀹夎宸ヤ綔銆?/font>
棣栧厛紜畾ACE鐨勫畨瑁呰礬寰勶紝騫跺緩绔嬬浉搴旂殑鐩綍銆?br />榪欓噷錛屾垜浠妸ACE瀹夎鍦?home/zhc/ace/鐨勭洰褰曚笅錛屽厛鎵ц
mkdir /home/zhc/ace
鐒跺悗灝嗚幏寰楃殑ACE婧愪唬鐮佸寘瑙h嚦璇ョ洰褰曚笅銆?br />tar zxvf ACE-5.4.tar.gz /home/zhc/ace
榪欐椂錛屽湪ace鐨勭洰褰曚笅浼氬緩绔嬩竴涓悕涓篈CE_wrappers鐨勫瓙鐩綍錛孉CE鎵鏈夌殑婧愪唬鐮併佸伐鍏楓佸拰渚嬪瓙閮藉湪榪欎釜鐩綍涓?br />鍏堣繘鍏ヨ鐩綍錛屾墽琛?br />cd /home/zhc/ace/ACE_wrappers
鐒跺悗寤虹珛涓涓瓙鐩綍錛岀敤浜庡瓨鏀続CE緙栬瘧鍚庣殑鐩爣鏂囦歡
mkdir build
cd build
鎺ョ潃,鎵цconfigure鑴氭湰錛屾鏌ヤ綘鐨勭郴緇熺幆澧冿紝閰嶇疆騫剁敓鎴愰傚悎浣犵殑緋葷粺鐨凪akefile鏂囦歡銆?br />鍦ㄦ墽琛宑onfigure鑴氭湰鏃訛紝鍙互鍔犲叆璁稿閰嶇疆閫夐」錛屽叾璇︾粏璇存槑鍙互鍙傜湅ACE_wrappers鐩綍涓嬬殑ACE-INSTALL.html鏂囦歡錛?br />瀵逛簬Redhat9緋葷粺鏉ヨ錛屼笉蹇呭姞浠諱綍鍙傛暟錛孉CE灝卞彲浠ュ緢濂界殑宸ヤ綔浜嗐?br />../configure
鍦ㄦ極闀跨殑媯鏌ュ拰閰嶇疆涔嬪悗錛屽鏋滄病鏈変粈涔堥棶棰橈紝浣犲氨鍙互寮濮嬬紪璇戜簡銆?br />榪欎竴姝ュ緢綆鍗曪紝鎵ц
make
鐒跺悗錛屾場涓鏉尪錛岄潤闈欑殑絳夊緟灝辮浜嗐?
濡傛灉緙栬瘧欏哄埄鐨勯氳繃(閫氬父閮戒細鏄繖鏍風殑)錛岄偅涔堟伃鍠滀綘錛屼綘宸茬粡鎴愬姛浜嗕竴澶у崐浜嗭紝涓嬮潰瑕佸仛鐨勪粎浠呮槸浠ヤ簺閰嶇疆宸ヤ綔鑰屽凡銆?br />鎺ヤ笅鏉ョ殑宸ヤ綔鏄畨瑁咃紝榪欎竴姝ユ槸鍙夌殑錛岀洰鐨勬槸鎶婄紪璇戠敓鎴愮殑ACE鐨勫簱鏂囦歡銆佸ご鏂囦歡鍜屾墜鍐岄〉絳夊畨瑁呭埌/usr/local鐨勭浉搴旂洰褰曚腑鍘伙紝涓轟簡浠婂悗浣跨敤鐨勬柟渚匡紝鎴戝緩璁綘榪樻槸榪涜榪欎竴姝ワ紝鎵ц
su
root's password
make install
瀹夎涔嬪悗錛屾垜浠氨鍙互榪涜鏈鍚庣殑閰嶇疆宸ヤ綔浜嗐?br />棣栧厛璁劇疆鐜鍙橀噺ACE_ROOT錛屾墽琛?br />setenv ACE_ROOT /home/zhc/ace/ACE_wrappers
娉ㄦ剰鍏朵腑鐨勮礬寰勮鏍規嵁浣犵殑瀹為檯鎯呭喌鑰屽畾
濡傛灉浣犱笉鎯蟲瘡嬈¢兘鎵嬪伐璁懼畾璺緞錛屽彲浠ョ紪杈戜綘鐨刡ash鐨勯厤緗枃浠訛紝鎵ц
cd
vi .bash_profile
鍦ㄥ叾涓~鍔犲涓嬩袱琛?br />ACE_ROOT=/home/work/research/ace/ACE_wrappers
export ACE_ROOT
鐒跺悗錛屽湪$ACE_ROOT/ace鐩綍涓垱寤轟竴涓悕涓篶onfig.h鐨勬枃浠訛紝鍦ㄥ叾涓寘鍚涓嬩竴琛?br />#include "ace/config-linux.h"
鎴栬咃紝綆鍗曡搗瑙侊紝浣犱篃鍙互鐩存帴寤虹珛涓涓寚鍚慶onfig-linux.h鐨勭鍙烽摼鎺ワ紝鎵ц
ln -s config-linux.h config.h
鍚屾牱錛屽湪$ACE_ROOT/include/makeinclude鐩綍涓垱寤轟竴涓悕涓簆latform_macros.GNU鐨勬枃浠訛紝鍦ㄥ叾涓寘鍚涓嬩竴琛?br />include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
鎴栬咃紝綆鍗曡搗瑙侊紝浣犱篃鍙互鐩存帴寤虹珛涓涓寚鍚憄latform_linux.GNU鐨勭鍙烽摼鎺ワ紝鎵ц
ln -s platform_linux.GNU platform_macros.GNU
鏈鍚庝竴姝ワ紝璁劇疆鐜鍙橀噺LD_LIBRARY_PATH錛屾墽琛?br />setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$ACE_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
鎴栬呭湪~/.bash_profile鏂囦歡涓坊鍔犲涓嬩袱琛?br />LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
瀹夎瀹屾垚錛?/font>
緇忚繃涓婇潰鐨勬楠わ紝ACE宸茬粡瀹夎鍒頒簡鎮ㄧ殑緋葷粺涓婁簡錛?br />涓嬮潰鎴戜滑灝嗙紪璇戝茍鎵цACE鐨勪緥紼嬩互楠岃瘉鎴戜滑鐨勫伐浣溿?br />榪欓噷鎴戜滑浠ャ奀++緗戠粶緙栫▼錛屽嵎涓銆嬫墍甯︾殑渚嬪瓙涓轟緥銆?/font>
榪涘叆渚嬬▼鐩綍錛屾墽琛?br />cd $(ACE_ROOT)/examples/C++NPv1
緙栬瘧渚嬪瓙紼嬪簭錛屾墽琛?br />make
濡傛灉鍓嶉潰鐨勫畨瑁呭拰閰嶇疆姝g‘錛屽緢蹇氨鑳藉寰楀埌緙栬瘧鍚庣殑渚嬪瓙紼嬪簭銆?
鍒嗗埆鎵ц涓涓湇鍔″櫒紼嬪簭(闅忎究鍝竴涓兘琛?鍜屼竴涓鎴風紼嬪簭(Logging_Client)錛?br />濡傛灉紼嬪簭榪愯姝g‘錛岃鏄庡墠闈㈢殑瀹夎鍜岄厤緗垚鍔燂紝涓嬮潰浣犲氨鍙互寮濮嬩綘鐨凙CE瀛︿範涔嬫梾浜?/font>
聽