[轉載]ptlib 中MergeSym

ptlib 中MergeSym
ptlib 中MergeSym
1:MergeSym的作用似乎是將靜態庫(static lib)轉換成def

2:MergeSym項目依賴OPAL_Static; 假如OPAL_Static依賴了其他DLL注意在MergeSym項目的生成後事件中COPY該DLL到MergeSym的生成目錄;
3:MergeSym的命令行格式:


MergeSym [ -v ] [ -s ] [ -d dumpbin ] [ -x deffile[.def] ] [-I libfilepath ] libfile[.lib] [ deffile[.def] [ outfile[.def] ] ]


example:

-I C:/Program Files/Microsoft Visual Studio 8/VC/lib;C:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib;C:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib/i386;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/lib;C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/lib;C:/Program Files/Microsoft Visual Studio 8/;C:/Program Files/Microsoft Visual Studio 8/lib -x Debug/ptlibd.def -x e:/323/opal/src/win32//Private.def ./../../lib/opalsd.lib e:/323/opal/src/win32/opald_2005.dtf ./../../lib/Debug/opald.def

-I :表示的是LIB的默認路徑  可能./../../lib/opalsd.lib 的依賴LIB到以上的目錄中找到加載;
-x :輸入的DEF文件
libfile[.lib]:需要分割的STATIC LIB
[ deffile[.def] [ outfile[.def] ] ]輸出的DEF

4:大概的步驟:
(1)用DUMPBIN+/symbols  + lib_filename 將STATIC LIB文件用DUMPBIN+/symbols 命令導出symbols信息到臨時的SYM文件
(2)從SYM文件中提取Symbol與輸入的DEF文件比較,採取添加或者移除 從而生成新的DEF文件;

有了新的DEF就可以生成DLL 和 LIB 了參見PTlib_DLL和OPAL_DLL項目 只有DllMain(HANDLE hinstDLL, DWORD fdwReason, LPVOID)函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章