ACE的安装是按照ACE的网站的介绍make,make install,没有错误,很兴奋,马上弄了一个小例子,如下
// testace.cpp : Defines the entry point for the console application.
//
#include <stdlib.h>
#include <ace/OS.h>
#include <ace/Log_Msg.h>
int main(int argc, const char* argv[])
{
ACE_DEBUG((LM_DEBUG,"Hello, ACE! "));
ACE_OS::exit(1);
return 0;
}
///
呵呵,各位看出有什么问题么?我是没看出来
然后就是编译,g++ -I/usr/local/include -L/usr/local/lib -lACE-5.7.5 testace.cpp -o testace
然后就报错误了,说找不到ace/OS.h,在/usr/local/include中明明有这个文件。
怎么试也不行,修改space,在里面的*.cpp处添加了 -I/usr/local/include 在*link处添加 -L/usr/local/lib重新编译,还是报找不到ace/OS.h
忽然注意到这个分隔符"/",在Linux下应该是“/”才对,修改代码为中的
#include <ace/OS.h>
#include <ace/Log_Msg.h>
为
#include <ace/OS.h>
#include <ace/Log_Msg.h>
重新编译,这次没问题了
顺利通过,哈哈哈
刚要高兴一下,运行时又出问题了,说是找不到libACE-5.7.5.so,怎么办
ls /usr/locale/lib
看到了这个文件,为什么没有呢?
重新找问题吧,看了一下 /etc/ld.so.conf,也包含了/usr/local/lib这个目录,为了保险,还是/sbin/ldconfig –v.再次运行
“Hello, ACE!”终于出来了。
到此总结一下:抄代码时,一定要注意一下环境。刚才的代码就是一个windows下的测试程序。因为一个分隔符的问题,浪费了两个小时的时间。