找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4258|回复: 8

请问怎么编译一个不需要其它dll支持的ACE.dll

[复制链接]
发表于 2008-1-28 15:36:58 | 显示全部楼层 |阅读模式
我用VS2005编译的ACE.dll,总是不可避免需要msvcp80.dll和msvcr80.dll这两个dll,请问怎么可以编译出一个能够独立使用的ACE.dll?
发表于 2008-1-28 16:11:37 | 显示全部楼层
在工程的运行时库选项里面,选择静态链接 DLL,这样就会编译进去了,但是最终尺寸会变大。
 楼主| 发表于 2008-1-28 16:30:21 | 显示全部楼层

回复 #2 peakzhang 的帖子

我不清楚你是不是真的这样试验过。
不过在VS2005的工程设置里面,是没有你说的“运行时库”的“静态链接DLL”选项的。
而在MFC的使用里面,倒是有“在静态库中使用 MFC”和“在共享 DLL 中使用 MFC”的选项,而默认的ACE的工程选项是“使用标准 Windows 库”。
我不清楚你的意思是不是把选项由“使用标准 Windows 库”改成“在静态库中使用 MFC”。这个我倒是没有试过,我觉得使用标准windows库的文件会更小,而且也不会使用到MFC的dll,待会我试试看看。
发表于 2008-1-28 18:53:57 | 显示全部楼层
看图示,我没说清楚,我以为你很了解VS。默认是DLL,改成非DLL的选项。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?用户注册

×
发表于 2008-1-29 12:55:28 | 显示全部楼层
用vc6不是更好?
 楼主| 发表于 2008-1-31 11:05:37 | 显示全部楼层

按照版主的说法设置/MT选项的话,程序无法通过编译……

VS我还算是比较了解,不过这些不常用的编译选项倒是很少用过。
发表于 2008-1-31 11:21:34 | 显示全部楼层
要看看什么错误。
 楼主| 发表于 2008-1-31 11:29:17 | 显示全部楼层

错误如下

1>------ 已启动生成: 项目: ACE, 配置: Release Win32 ------
1>正在编译...
1>XTI_ATM_Mcast.cpp
1>C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include\afxver_.h(77) : fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds
1>XML_Svc_Conf.cpp
1>C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include\afxver_.h(77) : fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds
1>WIN32_Proactor.cpp
1>C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include\afxver_.h(77) : fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds
1>WIN32_Asynch_IO.cpp
1>C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include\afxver_.h(77) : fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds
.....


ps:我只修改了ACE这个工程的/MT选项。
我又随便建了一个MFC测试工程,反正/MT选项就是不怎么好用,很难通过编译。
 楼主| 发表于 2008-2-1 14:30:56 | 显示全部楼层
我在ACE的config.h中加入了ACE_USES_STATIC_MFC选项后,总算可以用/MT选项进行编译了,不过编译后的文件还是需要msvcp80.dll和msvcr80.dll这两个dll:(
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-23 12:37 , Processed in 0.017285 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表