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)函数
阅读(1300) | 评论(0) | 转发(0) |