返回信息流以下是简化版:
问题是这样:
有两个工程,A和TestA。在project/A/和project/TestA/目录下。TestA是对A中的代码进行测试。在TestA中的文件中包含A中的文件是这么写的:
#include "../A/a.h"
但现在的问题是A中所有类的静态成员以及没有在头文件中定义的函数都在编译时报告未定义。测试时用的CppUnit。
但如果把A中的所有文件都cp到TestA目录下就能通过编译。
环境:Eclipse + cdt + linux.
语言:C++
请问该怎样才能用TestA工程来对A工程进行测试,谢谢!
--------以上是简化般----------------------
发信人: FadeToBlack (Forever MetallicA), 信区: CPP
标 题: [求助]软件测试时碰到的问题
发信站: 北邮人论坛 (Mon May 19 19:11:35 2008), 站内
新建了一个工程B用来调试另一个工程A,是直接把A中的头文件全部包含到B的代码里就行了吗?
我这样做了,但是出现了以下情况:
A中有两个Singleton S1, S2。
在B中对S2进行测试时出现如下错误:
S1中的 S1* _instance未定义。
S2中的 S2* _instance未定义。
但上面两个变量我都在S1.cpp和S2.cpp中定义过了。我试了试把S1.cpp和S2.cpp也包含进去,结果出现了更多error, eg:
Severity and Description Path Resource Location Creation Time Id
/usr/include/c++/4.1.3/bits/stl_algo.h undefined reference to `vtable for ItemIdentifier' MiniERPTest line 188 1211195458751 6988
而且现在所有的Singleton的_instance都报未定义。
环境: Eclipse 3.2 + cdt 3.12 + Linux
p.s.我在Eclipse中设置了B的reference project为A,包含路径也没错。
请问该怎么解决,谢谢!
---------------------------------------
现在我把A里面的代码cp到B里面一份,删了B的reference project to A,然后修改一下包含路径就能通过了。
之前无法通过编译大概是因为测试代码和程序代码是在两个平行的目录下,编译器无法找到对应代码吧。
不过怎么做才能新建一个工程用来调试另一个工程,而不是把程序代码和测试代码都放在一个工程里呢?
另外,Eclipse中的Reference Project是做什么用的呢?
p.s.开始发在C/C++版,不过木人回应,所以转来这里。不过现在想想好像发错版了,-_-|||
这是一条镜像帖。来源:北邮人论坛 / soft-design / #25520同步于 2008/5/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[求助]关于软件测试的问题(懒得看的同学再看下,缩短了)
FadeToBlack
2008/5/20镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
另外,Eclipse中的Reference Project是做什么用的呢?
----就是依赖项目. 在java里,因为保存的时候都会自动编译.所以用起来没问题.
cdt不知道.
玩c还是用m$的东西吧
Linux... Howto M$?
【 在 atian25 的大作中提到: 】
: 另外,Eclipse中的Reference Project是做什么用的呢?
: ----就是依赖项目. 在java里,因为保存的时候都会自动编译.所以用起来没问题.
: cdt不知道.
: ...................
I use it first, but writing the makefile make me sick. Pre-compiler header can't work properly, while I searched the Internet and got a report of bug to the g++ team. -_-|||
Eclipse works, but when testing, problems occur.
p.s. Sorry for I can't input Chinese koz I've reinstalled the system, and fcitx need a reboot to work.
【 在 atian25 的大作中提到: 】
: linux,就用vim吧.
问题是这样:
有两个工程,A和TestA。在project/A/和project/TestA/目录下。TestA是对A中的代码进行测试。在TestA中的文件中包含A中的文件是这么写的:
#include "../A/a.h"
但现在的问题是A中所有类的静态成员以及没有在头文件中定义的函数都在编译时报告未定义。测试时用的CppUnit。
但如果把A中的所有文件都cp到TestA目录下就能通过编译。
环境:Eclipse + cdt + linux.
语言:C++
请问该怎样才能用TestA工程来对A工程进行测试,谢谢!
我试过了,但是不行。包含cpp文件后错误会更多。
【 在 voicespeed 的大作中提到: 】
: 把.cpp文件也include了
: 我猜应该可以……
没定义显然是因为看不到.cpp文件里的定义。所以你可以做一些符号链接,把A里的文件都给链接到TestA文件夹去,效果和cp一样。
ls的方法应该也可行