ep4947 发表于 2010-2-2 19:51:19

VS2008编译ACE5.7.5静态库怎么办?

我首先在D:\ACE_wrappers\ace下的config.h写入
#ifndef CONFIG_H
#define CONFIG_H
#define ALL_WARNINGS 1                        
#define ACE_NO_INLINE                                       //禁止使用inline
#define ACE_HAS_STANDARD_CPP_LIBRARY 1      //使用标准的 c++ 头文件
#define ACE_AS_STATIC_LIBS                              //编译静态
#include "ace/config-win32.h"                               //win系统
#endif

然后用VS2008编译工程ACE_wrappers_vc9_Static.sln,调为Release版
在D:\ACE_wrappers\lib下生成两个LIB文件,

添加D:\ACE_wrappers\lib为系统环境变量,
新建工程,
#include "ace/OS.h"
#include "ace/Log_Msg.h"

int main (int argc, char *argv[])
{
          ACE_DEBUG((LM_DEBUG,"Hello, ACE! "));
          ACE_OS::exit(1);
          return 0;
}
在工程属性中,添加了头文件所在文件夹为D:\ACE_wrappers,静态库文件夹为D:\ACE_wrappers\lib,
并把那两个静态库文件添加为依敕库文件,为什么编译不过去呢,希望高手指点一二!


我的目的是,真接编译出与系统网络函数相关联的静态库,然后自己写DLL,为以后使用,这样使用应该会方便一些,不过却不成功,郁闷中!

ep4947 发表于 2010-2-2 19:54:58

听说ACE_wrappers_vc9_Static.sln与ACE_vc9_Static.sln不一样,ACE_wrappers_vc9_Static.sln编译出来以后,是最基本的ACE静态库,ACE_vc9_Static.sln包括所有东东、范例、测试、某些扩展等等。


大家有什么指教吗,最好直接点出我不对的地方,谢谢了!

winston 发表于 2010-2-3 13:45:13

打开工程,一看便知。

ep4947 发表于 2010-2-5 19:18:28

回复 #3 winston 的帖子

好像不只打开看看这么简单吧,测试程序一直都编译不成功,有没有别的什么办法呢,请高手指点哈!

netelf 发表于 2010-2-21 22:16:17

因为你的头文件不会包含这个 config.h ,所以相关的宏在你自己的项目中仍然需要定义。在你自己的项目中加入 ACE_AS_STATIC_LIBS 这些宏即可使用静态ACE库了。

thinke365 发表于 2010-3-2 06:15:35

#include "ace/config-win32.h"修改为#include "config-win32.h"。。。

jiashaxiaomai 发表于 2010-3-6 23:30:30

我帮你

不知道你报的是啥错误,是连接库的问题,还是说程序写的问题。
链接错误,就有可能是你库版本不对,你编译的是release版本的库,写程序,默认编译的可是debug版本的哦。

有问题发邮件
feili1985@126.com
我这几天没事干
页: [1]
查看完整版本: VS2008编译ACE5.7.5静态库怎么办?