转自:http://blog.csdn.net/livelylittlefish/archive/2010/12/24/6096108.aspx
Win32平台如何配置才能使用Boost、ACE、CppUnit
1. 环境变量
(1) 为ACE-5.6.4添加/修改的的环境变量
C:/Documents and Settings/zubo.yu>echo %ACE_ROOT%
E:/opensource/ACE-5.6.4/ACE_wrappers
为已有的系统变量PATH添加value: %ACE_ROOT%/lib,如下。
C:/Documents and Settings/zubo.yu>echo %PATH%
C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;D:/Program Files/Cppcheck/;C:/Program Files/
Rational/ClearCase/bin;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;D:/Program Files/
UltraEdit/;E:/opensource/ACE-5.6.4/ACE_wrappers/lib
(2) 为Boost-1.40添加的环境变量
C:/Documents and Settings/zubo.yu>echo %BOOST_1_40_ROOT%
E:/opensource/boost_1_40_0
(3) 为CppUnit-1.12.1添加的环境变量
C:/Documents and Settings/zubo.yu>echo %CPPUNIT_ROOT%
E:/opensource/cppunit-1.12.1
即,
ACE_ROOT=E:/opensource/ACE-5.6.4/ACE_wrappers
BOOST_1_40_ROOT=E:/opensource/boost_1_40_0
CPPUNIT_ROOT=E:/opensource/cppunit-1.12.1
2. VS2005配置
为vs2005添加对ACE-5.6.4、Boost-1.40和CppUnit-1.12.1的支持。
Tools->options->projects and solutions->VC++ directories
->Include files: 添加$(ACE_ROOT)、$(BOOST_1_40_ROOT)、$(CPPUNIT_ROOT)/include
->Library files: 添加$(ACE_ROOT)/lib、$(BOOST_1_40_ROOT)/stage/lib、$(CPPUNIT_ROOT)/lib
3. vs2010 配置
为vs2010添加对ACE-5.6.4、Boost-1.40和CppUnit-1.12.1的支持。
同2,在vs2010中,Tools->options->projects and solutions->VC++ directories配置被取消。
公共的"VC++ directories"属性在vs2010中要在Microsoft.Cpp.Win32.user属性页中设置,如下图。
设置如下:
Microsoft.Cpp.Win32.user属性页->通用属性->VC++目录
->包含目录: 添加$(ACE_ROOT)、$(BOOST_1_40_ROOT)、$(CPPUNIT_ROOT)/include
->库目录: 添加$(ACE_ROOT)/lib、$(BOOST_1_40_ROOT)/stage/lib、$(CPPUNIT_ROOT)/lib
4. ACE项目在vs2005中的相关配置
Project->Properties (or Alt+F7)->Configuration properties->Linker->Input->Additional dependencies: 填入ACEd.lib或ACE.lib
ACEd.lib为debug版的库,ACE.lib为release版的库。
若不添加.lib库文件,会出现“unresolved external symbol”的错误,如:
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall ACE_Main_Base::run(int,char * * const)" (__imp_?run@ACE_Main_Base@@QAEHHQAPAD@Z) referenced in function _main
5. ACE项目在vs2010中的相关配置
项目->属性 (或者Alt+F7)->配置属性->连接器->输入->附加依赖项->编辑: 填入ACEd.lib或ACE.lib
填入ACEd.lib或ACE.lib后,其变为ACEd.lib;%(AdditionalDependencies)
否则,与vs2005一样,也会出现“无法解析的外部符号”的错误,如:
1>main.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: int __thiscall ACE_Main_Base::run(int,char * * const)" (__imp_?run@ACE_Main_Base@@QAEHHQAPAD@Z),该符号在函数 _main 中被引用
该项配置在vs2010中也可设置为公共属性,设置如下:
Microsoft.Cpp.Win32.user属性页->通用属性->连接器->输入->附加依赖项->编辑: 填入ACEd.lib或ACE.lib
这样配置以后,非ACE的应用程序也会有ACE的依赖项,当然这不是错误的。