当前位置:  技术问答>linux和unix

紧急求救:HP UNIX环境下使用CPPUNIT之疑问

    来源: 互联网  发布时间:2016-03-02

    本文导语:  源文件如下: // SimpleTest_lhp.cpp : Defines the entry point for the console application. // #include  #include  #include "cppunit/TestCase.h" #include "cppunit/TestResult.h" #include "cppunit/TestResultCollector.h" #include "cppunit/TextOutputter.h" int mya...

源文件如下:
// SimpleTest_lhp.cpp : Defines the entry point for the console application.
//

#include 
#include 

#include "cppunit/TestCase.h"
#include "cppunit/TestResult.h"
#include "cppunit/TestResultCollector.h"
#include "cppunit/TextOutputter.h"


int myadd(int x,int y)
{
   return x+y;
}

int myadd3(int x,int y)
{
   return x-y;
}


//定义测试用例
//class SimpleTest:public CppUnit::TestCase
//{
//public:
// void runTest()                       //重要测试方法,是重载过来的
// {
//   int i=1;
//   //CPPUNIT_ASSERT_EQUAL(0,i);   
//      CPPUNIT_ASSERT_EQUAL(myadd(1,2),3);
//
//   //CPPUNIT_ASSERT_EQUAL_MESSAGE("这里好像有问题.",0,i);  //另一种报错方法
// }
//};

//class SimpleTest2:public CppUnit::TestCase
//{
//public:
// void runTest()                       //重要测试方法,是重载过来的
// {
//   int i=1;
//   //CPPUNIT_ASSERT_EQUAL(0,i);   
//      CPPUNIT_ASSERT_EQUAL(myadd3(5,2),3);
//
//   //CPPUNIT_ASSERT_EQUAL_MESSAGE("这里好像有问题.",0,i);  //另一种报错方法
// }
//};

int main(int argc, char* argv[])
{
printf("正式开场了!n");
printf("之和=%dn",myadd(171,29));

// CppUnit::TestResult r;
// CppUnit::TestResultCollector rc;
// r.addListener(&rc);                  //准备好结果收集器   
//
// SimpleTest t;
// t.run(&r);                           //运行测试用例
//
//    SimpleTest2 t2;
// t2.run(&r);                           //运行测试用例
//
// CppUnit::TextOutputter o(&rc,std::cout);
// o.write();                           //将结果输出
return 0;
}



makefile文件内容如下:

#设置进程利用到的基类.h文件的路径
Inc=/bea/cskf/user/lhp/R_Server_new/R_CSServer/cppunit-1.12.0/include

#设置cppunit库文件的路径
Lib=/bea/cskf/user/lhp/R_Server_new/R_CSServer/cppunit-1.12.0/lib

#设置不同操作系统的编译器;HP的C++编译器为aCC;IBM的C++编译器为xlC
XCC=aCC

#设置生成的执行文件
EXEFILE=UT

#定义
MYDEFINE = -D_MSC_VER

#设置工程源代码文件,以空格隔开,如果源代码文件比较多,可以以""进行换行
SOURCEFILE=UnitTestMain.cpp

#设置工程目标代码文件,以空格隔开,如果源代码文件比较多,可以以" "进行换行
OBJFILE=UnitTestMain.o 

#由每个开发人员自己定义编译模式
allobj:
${XCC} -c -I${Inc} -AA -DCPPUNIT_NO_STREAM -D_HP_aCC -I/usr/include UnitTestMain.cpp

#生成文件,在sh命令中,执行make -f makefile_template_hp all即可
all:
make allobj
${XCC} -o ${EXEFILE} ${OBJFILE} -L${Lib}

#清除生成的中间文件,在sh命令中,执行make clean即可
clean:
rm *.o ${EXEFILE}


问题:如果把源码中下述四行代码给屏掉,就可以正常编译
#include "cppunit/TestCase.h"
#include "cppunit/TestResult.h"
#include "cppunit/TestResultCollector.h"
#include "cppunit/TextOutputter.h"

如果要打开,也就是想进一步进行CPPUNIT测试,编译之后链接报错信息如下:

[155] % make all
        make allobj
        aCC -c -I/bea/cskf/user/lhp/R_Server_new/R_CSServer/cppunit-1.12.0/include -AA -DCPPUNIT_NO_STREAM -D_HP_aCC -I/usr/include UnitTestMain.cpp
        aCC -o UT UnitTestMain.o  -L/bea/cskf/user/lhp/R_Server_new/R_CSServer/cppunit-1.12.0/lib
/usr/ccs/bin/ld: Unsatisfied symbols:
   std::__rw_exception::_C_assign(const char *,unsigned long) (first referenced in UnitTestMain.o) (code)
   Class tables [Vtable] dependent on key function: "std::exception::~exception()" (first referenced in UnitTestMain.o) (data)
   typeid (first referenced in UnitTestMain.o) (data)
   std::exception::~exception() (first referenced in UnitTestMain.o) (code)
   std::__rw_exception::_C_vformat(int,double *) (first referenced in UnitTestMain.o) (code)
   _HPMutexWrapper::~_HPMutexWrapper() (first referenced in UnitTestMain.o) (code)
   std::basic_string::__nullref (first referenced in UnitTestMain.o) (data)
*** Error exit code 1

|
与CppUnit的编译参数比较一下,可能少了-AA参数。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求救!求救!紧急求救!为什么更新不了所指定的内容?
  • 求救!!!硬件高请进、、、、、、(十万火急,高分求救。)
  • 求救求救!!
  • 求救啊 高分求救 UNIX下关于进程通讯的问题~
  • 求救!!!求救!!!机器不能正常启动
  • 关于jdbc,求救求救!在线等待,马上给分
  • 紧急求救,root用户无权限删除文件
  • 晕,特晕...求救...
  • 高分求救~~如何取得linux下进程完整命令行字符串,就是的ps -ef 完整的全路径的CMD那一列,求救!!!!附现在的代码
  • 求救!weblogic6.0后台运行正确,前台页面跳转或调用其他页面时出“页面无法显示错误”
  • 求救:java里如何取整一个浮点数(不做四舍五入)
  • 紧急求救!!
  • Linux下无法启动apache 高分求救!在线等待
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题 (分不够可加)
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题
  • 求救,linux和windows之间如何联成局域网(设置),并且相互之间移动文件。
  • 求救!!在Redhat7.3下安装scim0.9.3怎么安装?
  • Linux8.0 修改字符集后,再次进系统,无图形界面问题。。。求救。。
  • SUSE网络打印机问题,在线等,求救!!
  • 散分一百,紧急求救!ROOT密码忘记


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3