`
pleasetojava
  • 浏览: 698188 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ACE在linux和windows下编译、实例一则

阅读更多
ACE在linux和windows下编译、实例一则

linux

下载ace 5.6
在根目录下建立一个文件夹
mkdir /ace
把下载的ace包移过去,解压得到一个文件夹ACE_wrappers
然后进入这个文件夹,看看里面的readme就可以晓得,linux下如何编译和安装
网上很多人说要建立一个config.h的文件,那是好多年前的老皇历了,readme里面没有说要建立这么个玩意,那就不建立。
直接进入主题,编译:
cd /ace/ACE_wrappers
mkdir build
cd build
../configure 我们使用默认的option
make
make install
过程很快,然后我们进入到/usr/local目录下,可以看到include里面有ace要用的头文件,lib里面有ace要用的库文件
linux的库文件 的搜索路径如下:
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
因此,我们不用设置ace的头文件了。
但是ace库文件不是linux的自带的默认的库文件,因此我们使用的时候要带上,而ace现在的库文件并不是系统的,先看一下默认的:
默认的动态库搜索路径/lib和/usr/lib
我们把ace所在的库文件路径添加进去:
一:
在/etc/bashrc中加入:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
重启
二:
打开/etc/ld.so.conf
本来内容是如下:
include ld.so.conf.d/*.conf
我们添加ace路径后变成如下
include ld.so.conf.d/*.conf
/usr/local/lib
保存退出!
然后执行 ldconfig
就可以了。
下面我们弄一个简单的ace程序:

/////////////////////////hello.cpp

#include"ace/OS.h"
#include
"ace/Log_Msg.h"

intmain(intargc,char*argv[])
{
ACE_DEBUG((LM_DEBUG,
"Hello,ACE! "));
ACE_OS::exit(
1);
return0;
}



这么就不写makefile了,直接用g++编译就是了。
编译
g++ hello.cpp -o hello -lACE
运行:
./hello
结果:
[root@BTazuo ~]# ./hello
Hello, ACE!

一切ok,很顺利。

windows

解压ace在c盘,我的路径是:

C:\ACE_wrappers

然后设置系统路径:

添加系统的环境变量,path 的最前面加入C:\ACE_wrappers\lib

添加vc的库文件路径:

C:\ACE_wrappers\lib

添加vc的头文件也就是包含文件的路径:

C:\ACE_wrappers


C:\ACE_wrappers\ace目录创建一个名为 config.h的文件。编辑文件并加入以下内容
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"

回到C:\ACE_wrappers目录,双击ACE_wrappers_vc8.sln开始编译几个要用的库文件,如果用的是debug模式得到的就是:

"ACE.dll","ACE.lib", "ACEd.dll","ACEd.lib"还有一些其他的。

再双击ACE_vc8.sln,开始全部的编译,过程很久。

最后在C:\ACE_wrappers\lib产生70多m的库文件。

开始写一个程序试试:

依旧是上面的程序:

#include"ace/OS.h"
#include
"ace/Log_Msg.h"

intmain(intargc,char*argv[])
{
ACE_DEBUG((LM_DEBUG,
"Hello,ACE! "));
ACE_OS::exit(
1);
return0;
}

编译的时候有点麻烦,要手动的带库文件,如下设置:

“项目”--“hello属性”--“配置属性”--“链接器”--“输入”--“附加依赖项”,在里面输入“ACEd.lib”,确定。

接下来就是开始编译了,成功,运行打印“Hello, ACE!”。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics